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