Uma das tarefas mais importantes de qualquer programador precisa de fazer com frequência é o Backup à sua base de dados MySQL. Em muitos casos, a Base de Dados é o que dirige a maior parte do site.
Embora a maioria dos web hostings fazem backups diários da Base de Dados dos clientes, porém, em alguns casos, depender deles para fazer backups e disponibilizar-nos, sem qualquer custo é no mínimo arriscado. É por isso que criei uma função de backup de dados que possa utilizar sempre que quiser.
backup_bd('localhost','utilizador','password','blog');
/* Fazer Backup da BD ou só de uma Tabela */
function backup_bd($host,$utilizador,$password,$nome,$tabelas = '*')
{
$link = mysql_connect($host,$utilizador,$password);
mysql_select_db($nome,$link);
//obter todas as tabelas
if($tabelas == '*')
{
$tabelas = array();
$resultado = mysql_query('SHOW TABLES');
while($coluna = mysql_fetch_row($resultado))
{
$tabelas[] = $coluna[0];
}
}
else
{
$tabelas = is_array($tabelas) ? $tabelas: explode(',',$tabelas);
}
foreach($tabelas as $tabelas)
{
$resultado = mysql_query('SELECT * FROM '.$tabelas);
$num_campos = mysql_num_fields($resultado);
$return.= 'DROP TABLE '.$tabelas.';';
$coluna2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$tabelas));
$return.= "\n\n".$coluna2[1].";\n\n";
for ($i = 0; $i < $num_campos; $i++)
{
while($coluna = mysql_fetch_row($resultado))
{
$return.= 'INSERT INTO '.$tabelas.' VALUES(';
for($j=0; $j<$num_campos; $j++)
{
$coluna[$j] = addslashes($row[$j]);
$coluna[$j] = ereg_replace("\n","\\n",$coluna[$j]);
if (isset($coluna[$j])) { $return.= '"'.$coluna[$j].'"' ; } else { $return.= '""'; }
if ($j<($num_campos-1)) { $return.= ','; }
}
$return.= ");\n";
}
}
$return.="\n\n\n";
}
//guarda ficheiro
$ficheiro = fopen('bd-backup-'.time().'-'.(md5(implode(',',$tabelas))).'.sql','w+');
fwrite($ficheiro,$return);
fclose($ficheiro);
}
Claro que vais precisar de fornecer as credenciais de login da Base de Dados, bem como o conjunto de tabelas que queres fazer o backup. Se colocares “*” ou nenhuma tabela, será feito um full backup da Base de Dados. O script faz o resto!
Mais vale não arriscar quando o site é de estrema importância. Faz backups frequentes ou podes ter que pagar o preço mais tarde!

(4 votos, média: 4,75 num total de 5)





