Foros del Web » Programando para Internet » PHP »

Backup de mysql con php descargando archivo sql

Estas en el tema de Backup de mysql con php descargando archivo sql en el foro de PHP en Foros del Web. Hola amig@s!! Estoy probando varias funciones en php para poder hacer copias de mi base de datos en formato .sql y descargarlas. Uso, por ejemplo, ...
  #1 (permalink)  
Antiguo 23/04/2013, 03:44
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Backup de mysql con php descargando archivo sql

Hola amig@s!!
Estoy probando varias funciones en php para poder hacer copias de mi base de datos en formato .sql y descargarlas.
Uso, por ejemplo, esta función que es la que más me gusta
Código PHP:
function copiaBD()
{
    
$conexion conectar();
    
$db 'nombre_basedatos';
    
$nombre_backup date("Y-m-d") . "-" $db ".sql";
 
    
// CABECERAS PARA DESCARGAR EL ARCHIVO
    
header"Content-type: application/savingfile" );
    
header"Content-Disposition: attachment; filename=$nombre_backup" );
    
header"Content-Description: Document." );
     
    
// RECUPERO LAS TABLAS
    
$tablas mysql_list_tables($db);
    
    
    if (!
$tablas) {
        echo 
"Error en la base de datos: no se pueden listar las tablas \n";
        echo 
'MySQL Error: ' mysql_error();
        exit;
    }
     
    
// RECORRO TODAS LAS TABLAS
    
while ($tabla mysql_fetch_row($tablas)) {
    
        
// RECUPERO LA INFORMACION DE CREACION DE LA TABLA

        
$creacion mysql_fetch_array(mysql_query("SHOW CREATE TABLE $tabla[0]"));
        
        echo 
"-- Informacion de creacion de la tabla $tabla[0]\n\n";

        
//echo $creacion[1]."\n\n";
        
echo $creacion[1];
    

        
// RECUPERO LOS NOMBRES DE LOS CAMPOS
        
$columnas_txt "";
        
$columnas mysql_query("SHOW COLUMNS FROM $tabla[0]");
        
$cantidad_columnas mysql_num_rows($columnas);
        if (
mysql_num_rows($columnas) > 0) {
            while (
$columna mysql_fetch_assoc($columnas)) {
                
$columnas_txt .= $columna['Field'] . ", ";
            }
        }
        
$columnas substr($columnas_txt0, -2);
    }
    
mysql_close($conexion);

Hasta aquí todo bien.

Estoy trabajando con PHP y su framework XAJAX para sólo recargar un div. Entonces para conseguir que salte esta función primero creo una variable de sesión y luego recargo el index para que compruebe si esta creada esa sesión y llame a la función de copia.
Como much@s sabreis, la comprobación la tengo que hacer fuera del código HTML del index, al principio de la página, lo cual hace que se me cargue, además del código sql recuperado, toooodo el código HTML que le sigue. Y JAVASCRIPT también.

Ahora me gustaría saber cómo puedo hacer para que sólo se genere el sql de la recuperación de la base de datos.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 23/04/2013, 06:26
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Backup de mysql con php descargando archivo sql

Manda el resultado a un iframe o a un fichero... pero no es mucha complicación para una cosa que la hace phpmyadmin....???
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 23/04/2013, 06:43
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Backup de mysql con php descargando archivo sql

Aja, eso es lo que hace.
Manda el resultado a un archivo .sql que puedes guardar o abrir.
Pero mi problema no es ese, sino que además del código sql del respaldo, me genera todo el código html y javascript del index.php.
Una cosilla, te agradezco tu ayuda, pero si pudiera hacer esa copia desde phpmyadmin no estaría consultando cómo hacerla desde php...
Saludos!!
  #4 (permalink)  
Antiguo 23/04/2013, 07:10
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Backup de mysql con php descargando archivo sql

No tengo la solucion por que no me lo he planteado nunca pero, lo que debes hacer es usar las funciones de php para editar archivos y mandar el resultado a un archivo en el servidor y luego recuperarlo o en un iframe o directamente con un link... la salida debe ir a un fichero llamado $nombre_backup y luego recuperarlo.... con el codigo que has mandado no se ve pero por lo que dices estas mandado la salida a la pantalla en el index...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: backup, html, mysql, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:04.