Backuo de la BD en mysql

¿Hola de nuevo experto como andas?
Te comento que estoy necesitando hacer un script para poder hacer un backup de la BD
Tengo el código pero no me anda, y la verdad que no se porque
Te lo paso así lo ves...
--------------------------------------
<?
require_once "/../../includes/cnx.php";
if (isset($_POST["bt_aceptar"])){
//fijo el date de hoy
$date_month = date('m');
$date_year = date('Y');
$date_day = date('d');
$Date = "$date_year-$date_month-$date_day";
//Archivo
$filename = "backup_$Date.sql";
//Datos BD
$usuario = "root";
$passwd = "";
$bd = "sao";
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$filename");
$execute=system('C:\xampp\mysql\bin\mysqldump.exe -u $usuario --password=$passwd --opt $bd',$resultado);
readfile ($execute);
?>
------------------------------------
Lo que haces es que cuando apretó un botón ejecuta el script y obliga al navegador para que me permita descargarlo
Espero tu respuesta ya que lo necesito!
UN abrazo

1 respuesta

Respuesta
1
Cuando ponemos para su descarga ficheros, dependiendo de la extensión de los mismos el navegador puede abrirlos en vez de forzar su descarga. Tal es el caso de ficheros con extensiones como .doc, .html o .pdf. Por ejemplo, para forzar la descarga de un fichero PDF:
// El content type del fichero.
header("Content-Type: application/pdf");
// Decirle al navegador que el fiechero es descargable
// y ponerle un nombre.
header("Content-Disposition: attachment; filename=nombrefichero.pdf");
¿Hola experto como andas?
El problema no es lo que mencionas arriba.
Cuando haces click sobre la sobre el botón, el script se autoinvoca.
El código que puse arriba, fuerza la descarga del archivo, pero antes de eso, ejecuta una función que se encuentra dentro del phpmyadmin deniminada mysqldump.exe.
Que lo que hace es un backup de la BD que le paso a través de una variable.
El problema es que no hace nada cuando apretó el botón
No se si es la mejor forma de realizar esto, ya que no se de que otra forma hacerlo.
Espero tu respuesta
Saludos
Diego
A ver si esto te sirve:
http://www.leemiblog.com/2008/01/hacer-backup-de-mysql-desde-un-script-en-php/
Hola experto, conseguí hacer este código
----------------------------------------
<?php
//fijo el date de hoy
$date_month = date('m');
$date_year = date('Y');
$date_day = date('d');
$Date = "$date_year-$date_month-$date_day";
//Archivo
$filename = "mydb_$Date.sql";
//Datos BD
$usuario = "root";
$passwd = "";
$bd = "sao";
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=" .basename($filename));
$executa = "C:/xampp/mysql/bin/mysqldump.exe --opt --password='$passwd' --user=$usuario $bd > archivo.sql";
$exec=system($executa, $resultado);
readfile($filename);
exit;
?>
--------------------------------------------
En realidad me descarga el archivo, pero me escribe un archivo de texto en blanco en la carpeta de donde esjecuta dicho script.
pero si en vez de guardar el archivo, lo abro, me dice lo sig:
<br />
<b>Warning</b>:  readfile(mydb_2011-05-23.sql) [<a href='function.readfile'>function.readfile</a>]: failed to open stream: No such file or directory in <b>C:\xampp\htdocs\sao\partes\Mantenimiento\otro2.php</b> on line <b>28</b><br />
En realidad me estría diciendo que no encuentra el archivo o algo así.
Hasta aquí he llegado, pero no se porque no anda
Espero que me puedas ayudar
Saludos
Diego
Comprueba si en esa carpeta tienes permisos de escritura

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas