PHP - Backup de base de datos mysql con php

 
Vista:
sin imagen de perfil
Val: 28
Ha aumentado su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

Backup de base de datos mysql con php

Publicado por Yaney (16 intervenciones) el 23/04/2019 11:51:10
Hola a todos, estoy tratando de hacer un boton en mi sitio web desde el que pueda descargar un file con el backup de la base de datos
mi codigo es el siguiente. Uso AppServ como servidor y la version de PHP es la 7

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// los archivos para referenciar la conexion a la base de datos y donde se declaran las variables de conexion
require_once ("db.php");
require_once ("conexion.php");
 
$fecha = date("d-m-Y");
 
$salida_sql = DB_NAME.'_'.$fecha.'.sql';
 
  $dump = "mysqldump --hDB_HOST -uDB_USER -pDB_PASS --opt DB_NAME > $salida_sql";
system($dump, $output);
 
$zip = new ZipArchive();
 
 
$salida_zip = DB_NAME.'_'.$fecha.'.zip';
 
if($zip->open($salida_zip,ZIPARCHIVE::CREATE)===true) {
    $zip->addFile($salida_sql);
    $zip->close();
    unlink($salida_sql);
    header ("Location: $salida_zip");
    } else {
    echo 'Error';
}

El problema es que me descarga el sql vacio.
que podra faltarle al script?
Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Backup de base de datos mysql con php

Publicado por Mauro (1036 intervenciones) el 23/04/2019 14:48:09
Lo que deberías hacer, más que una redirección a $salida_zip es mostrar directamente el contenido del archivo pero marcando que se trata de una descarga.

Algo como:

1
2
3
4
5
6
7
8
<?php
 
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$salida_zip.'"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($salida_zip));
readfile($salida_zip);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Backup de base de datos mysql con php

Publicado por Kathyu (905 intervenciones) el 23/04/2019 23:05:07
Esos respaldos (en su mayoría de veces) dan error, lo digo por experiencia propia.

Puede hacer que mejor hagan el BackUp por medio de un SGBD ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar