Buenos Dias (GMT-4.30) estoy buscando como hacer un respaldo de mi bd desde php, y todos los ejemplos son generalmente iguales que es:
Código PHP:
Ver original<?php
//aca los parametros de conexion, si tienes aparte la conexión , solo incluyuela
$usuario="tu_usuario";
$passwd="tu_password";
$host="localhost";
$bd="tu_base_datos";
$nombre="backup.txt"; //Este es el nombre del archivo a generar
/* Determina si la tabla será vaciada (si existe) cuando restauremos la tabla. */
$drop = false;
$tablas = false; //tablas de la bd
// Tipo de compresion.
// Puede ser "gz", "bz2", o false (sin comprimir)
$compresion = false;
/* Conexion */
/* Se busca las tablas en la base de datos */
$consulta = "SHOW TABLES FROM $bd;";
$tablas[] = $fila[0];
}
}
/* Se crea la cabecera del archivo */
$info['dumpversion'] = "1.1b";
$info['fecha'] = date("d-m-Y"); $info['hora'] = date("h:m:s A"); $info['tablas'] = implode("; ", $matches[1]); $dump = <<<EOT
# +===================================================================
# |
# | Generado el {$info['fecha']} a las {$info['hora']}
# | Servidor: {$_SERVER['HTTP_HOST']}
# | MySQL Version: {$info['mysqlver']}
# | PHP Version: {$info['phpver']}
# | Base de datos: '$bd'
# | Tablas: {$info['tablas']}
# |
# +-------------------------------------------------------------------
EOT;
foreach ($tablas as $tabla) {
$drop_table_query = "";
$create_table_query = "";
$insert_into_query = "";
/* Se halla el query que será capaz vaciar la tabla. */
if ($drop) {
$drop_table_query = "DROP TABLE IF EXISTS `$tabla`;";
} else {
$drop_table_query = "# No especificado.";
}
/* Se halla el query que será capaz de recrear la estructura de la tabla. */
$create_table_query = "";
$consulta = "SHOW CREATE TABLE $tabla;";
$create_table_query = $fila[1].";";
}
/* Se halla el query que será capaz de insertar los datos. */
$insert_into_query = "";
$consulta = "SELECT * FROM $tabla;";
foreach ($columnas as $columna) {
if ( gettype($fila[$columna]) == "NULL" ) { $values[] = "NULL";
} else {
}
}
$insert_into_query .= "INSERT INTO `$tabla` VALUES (".implode(", ", $values).");\n"; }
$dump .= <<<EOT
# | Vaciado de tabla '$tabla'
# +------------------------------------->
$drop_table_query
# | Estructura de la tabla '$tabla'
# +------------------------------------->
$create_table_query
# | Carga de datos de la tabla '$tabla'
# +------------------------------------->
$insert_into_query
EOT;
}
/* Envio */
header("Content-Transfer-Encoding: binary"); switch ($compresion) {
case "gz":
header("Content-Disposition: attachment; filename=$nombre.gz"); header("Content-type: application/x-gzip"); break;
case "bz2":
header("Content-Disposition: attachment; filename=$nombre.bz2"); header("Content-type: application/x-bzip2"); break;
default:
header("Content-Disposition: attachment; filename=$nombre"); header("Content-type: application/force-download"); echo $dump;
}
} else {
echo "<b>ATENCION: Probablemente ha ocurrido un error</b><br />\n<pre>\n$dump\n</pre>";
}
?>
pero necesito que el respaldo no incluya las KEY* y no se creen las tablas, esto lo hago porq tengo un sistema q tiene 4 surcusales y todos tienen q enviar sus datos a una pc principal, por eso no necesito ni q DRope ni que cree la tabla, y que los datos q cree sean sin el KEY para luegos insertarlos en la pc madre....
Me dan una manito?