He encontrado en
fluidbyte una sencilla función para hacer backup de una base de datos MySQL.
1 | function backupDatabase($file){ |
3 | $result = mysql_query('SHOW TABLES'); |
4 | while($row = mysql_fetch_row($result)){ $tables[] = $row[0]; } |
7 | foreach($tables as $table){ |
8 | $result = mysql_query('SELECT * FROM '.$table); |
9 | $num_fields = mysql_num_fields($result); |
10 | $return.= 'DROP TABLE '.$table.';'; |
11 | $row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table)); |
12 | $return.= "\n\n".$row2[1].";\n\n"; |
13 | for ($i = 0; $i < $num_fields; $i++){ |
14 | while($row = mysql_fetch_row($result)){ |
15 | $return.= 'INSERT INTO '.$table.' VALUES('; |
16 | for($j=0; $j<$num_fields; $j++){ |
17 | $row[$j] = addslashes($row[$j]); |
18 | $row[$j] = ereg_replace("\n","\\n",$row[$j]); |
19 | if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else{ $return.= '""'; } |
20 | if ($j<($num_fields-1)) { $return.= ','; } |
28 | $handle = fopen($file,'w+'); |
29 | fwrite($handle,$return); |
Su uso es bien sencillo:
1 | backupDatabase('/path_to_file/backup' . date('m-d-y') . '.sql'); |
No hay comentarios:
Publicar un comentario