hola a todos...
arto de que todos los scripts que me ponian no me funcionavan... fui buscando por este foro otras alternativas...... hasta que encontre un script de un tal fran86 (si mal no recuerdo) que puso un script para descargar los datos de una base de datos a un archivo (osea un backup) sin necesidad de utilizar el dichoso "mysqldump.exe".... ese escript me funciono a las mil maravillas pero solo guardabas los datos de una tabla..... asi que basandome en la idea de ese script he echo otro que funciona con todas las tablas ^_^. solo se tiene que poner el nombre de base de datos y este script extrae los datos de todas las tablas.
aqui les dego el codigo
Código PHP:
<?php
//Variables
$Usuario = "elusuario";
$Password = "lacontraseña";
$Servidor = "localhost";
$BaseDeDatos = "labasededatos";
$Archivo = "fichero.txt"; //podeis poner el nombre de archivo que querais con la extension que os de la gana
$EliminarTablas = true; //aqui poned si quereis que se elimen las tablas si existen
//Conectar con la base de datos
$Conexion = mysql_connect($Servidor, $Usuario, $Password);
mysql_select_db($BaseDeDatos, $Conexion);
$ListaTablas = mysql_listtables ($BaseDeDatos);
For ($Numero = 0; $Numero < mysql_num_rows ($ListaTablas); $Numero++) {
$Tablas[] = mysql_tablename ($ListaTablas, $Numero);
$Querys .= CrearQuerys( $Conexion, $Tablas[$Numero], $EliminarTablas);
}
// Enviamos los datos
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$Archivo");
echo $Querys;
Function CrearQuerys($Conexion, $Tabla, $EliminarTablas) {
// Query que elimina las tablas si existen
if ($EliminarTablas) {
$QueryEliminarTabla = "DROP TABLE IF EXISTS `$Tabla`;";
}
// Query que crea la estructura de la tabla
$sql= "SHOW CREATE TABLE $Tabla;";
$Respuesta = mysql_query($sql, $Conexion);
$ArrayRespuesta = mysql_fetch_array($Respuesta);
$QueryEstructuraTabla = $ArrayRespuesta[1].";";
// Query que introduce los datos en la tabla
$sql = "SELECT * FROM $Tabla;";
$Respuesta = mysql_query($sql, $Conexion);
while ($Fila = mysql_fetch_array($Respuesta, MYSQL_ASSOC)) {
$Columnas = array_keys($Fila);
foreach ($Columnas as $Columna) {
if ( gettype($Fila[$Columna]) == "NULL" ) {
$Valores[] = "NULL";
} else {
$Valores[] = "'".$Fila[$Columna]."'";
}
}
$QueryInsertarDatos .= "INSERT INTO `$Tabla` VALUES (".implode(", ", $Valores).");\n";
unset($Valores);
}
$Contenido = <<<EOT
$QueryEliminarTabla
$QueryEstructuraTabla
$QueryInsertarDatos
EOT;
return $Contenido;
}
?>
bueno que os parece lo que he echo?
probadlo y decidme si hos funciona...... :P (a mi me fuciona)
deberia poner este script en las faqs?