Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/04/2011, 14:02
murcielag56
 
Fecha de Ingreso: septiembre-2010
Mensajes: 72
Antigüedad: 13 años, 7 meses
Puntos: 0
script php para hacer copia seguridad DB

Tengo que hacer una copia de seguridad, pero sin usar dump u otro comando. Es decir programarlo todo con php.
Tengo esto, pero no se como seguir:
<?php
//*****************************************
//Aparte de las funciones mysql_connect, mysql_db_query, etc, se usarán mysql_list_tables,
// mysql_field_name, mysql_field_type. Se volcarán los datos de las tablas en un fichero,
// que se comprimirá y se enviará mediante el protocolo ftp a ftp....... .com.
//El fichero contendrá sentencias SQL como: DROP TABLE, CREATE TABLE, INSERT INTO.
//De tal forma, que si se destruye la base de datos se pueda restaurar todo sus tablas por medio
// de la ejecución SQL de dicho fichero.
//*********************************************
//$conexion = mysql_connect($host, $usurio, $passwd)
//$link = mysql_connect('dbhost', 'username', 'password');
$link= mysql_connect('....','.....','...');
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
echo "drop database if exists ".$row->Database.";";
echo "<br>";
echo "create database ".$row->Database.";";
echo "<br>";

// Se busca las tablas en la base de datos
$sql = "SHOW TABLES FROM $row->Database";
$result = mysql_query($sql,$link);
if (!$result) {
echo "DB Error, no se pudo listar las tablas\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
while ($filas = mysql_fetch_array($result)) {
echo "<font color= 'blue'>TABLA: </font>". $filas[0]. "<br>";

$db_selected = mysql_select_db($row->Database, $link);
$sql1= "select * from $filas[0]";
//echo "$sql1" ;
$res = mysql_query($sql1, $link);
$campos = mysql_num_fields($res);
$rows = mysql_num_rows($res);
$table = mysql_field_table($res, 0);

echo " La tabla '" . $tabla . "' tiene " . $campos . " campos y " . $rows . registros."<br>";
echo "<font color= 'red'> LA TABLA TINEN LOS SIGUIENTES CAMPOS:</font>.<br>";
for ($i=0; $i < $campos; $i++) {
$TIPO = mysql_field_type($res, $i);
$nombre = mysql_field_name($res, $i);
$TAMANO = mysql_field_len($res, $i);
$CARACTER = mysql_field_flags($res, $i);
echo $TIPO . " " . $nombre . " " . $TAMANO . " " . $CARACTER . "<br>";

$table = mysql_field_table($res, $i);
// echo "$table";
}
}
}
?>
gracias