|
Para guardar una base de datos, sin ningún gestor como podría ser phpMyAdmin. Se podría usar el siguiente código. Tal cual está .. envia a descargar el "dump" (volcado de datos y estructura) de la Base de datos seleccinada, incluido todas sus tablas.
Código PHP: <? // Nombre del archivo de con el cual queremos que se guarde la base de datos $filename = "fichero.sql"; // Cabezeras para forzar al navegador a guardar el archivo header("Pragma: no-cache"); header("Expires: 0"); header("Content-Transfer-Encoding: binary"); header("Content-type: application/force-download"); header("Content-Disposition: attachment; filename=$filename");
$usuario="usuario"; // Usuario de la base de datos, un ejemplo podria ser 'root' $passwd="contraseña"; // Contraseña asignada al usuario $bd="base_de_datos"; // Nombre de la Base de Datos a exportar
// Funciones para exportar la base de datos $executa = "c:\\mysql\\bin\\mysqldump.exe -u $usuario --password=$passwd --opt $bd"; system($executa, $resultado);
// Comprobar si se a realizado bien, si no es asi, mostrará un mensaje de error if ($resultado) { echo "<H1>Error ejecutando comando: $executa</H1>\n"; }
?>
Nota: Este código es valido si PHP se esta ejecutando en Windows. En caso de ejecutarse en Linux sustituir:
Código PHP: $executa = "c:\\mysql\\bin\\mysqldump.exe -u $usuario --password=$passwd --opt $bd";
por:
Código PHP: $executa = "/mysql/bin/mysqldump -u $usuario --password=$passwd --opt $bd";
**Las rutas indicadas son hacia la correspondiente ubicación física de mysqldump (o mysqldump.exe) en sus sistemas ...
Si se desea que el archivo generenado ($fichero.sql) lo queremos dejar en el propio servidor (por ejemplo para hacer backups de esa BD Mysql automaticos lanzados por algun script nuestro ...) usar (en lugar de la anterior $executa): (notese el > $fichero )
Código PHP: $executa = "c:\\mysql\\bin\\mysqldump.exe -u $usuario --password=$passwd --opt $bd > $fichero";
Y .. quitar las cabeceras header() q se usan (todas).
|