Foros del Web » Programando para Internet » PHP »

Problema al guardar consulta en fichero

Estas en el tema de Problema al guardar consulta en fichero en el foro de PHP en Foros del Web. Hola. Tengo un script que genera un backup de mi base de datos. Estoy intentando que lo guarde en un fichero en el servidor. El ...
  #1 (permalink)  
Antiguo 05/06/2008, 09:29
VCR
 
Fecha de Ingreso: febrero-2008
Mensajes: 5
Antigüedad: 16 años, 2 meses
Puntos: 0
Problema al guardar consulta en fichero

Hola.

Tengo un script que genera un backup de mi base de datos. Estoy intentando que lo guarde en un fichero en el servidor. El problema es que en el fichero no guarda todo, solo parte del código SQL. Pienso que puede ser por el tamaño de la consulta, pero no estoy seguro...

Alguna idea?

Muchas gracias!
  #2 (permalink)  
Antiguo 05/06/2008, 09:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al guardar consulta en fichero

codigo codigo.... suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 05/06/2008, 09:36
VCR
 
Fecha de Ingreso: febrero-2008
Mensajes: 5
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Problema al guardar consulta en fichero

Este es el codigo en cuestión. El script funciona correctamente, ya que si pongo que muestre en pantalla el contenido de la variable $Contenido, que es donde se guardan el código SQL, se muestra todo, pero al guardarlo en un fichero, solo se guarda parte...




<?php

include("config.php");

$Archivo=date(" Y\-m\-d") . "-".$dominio."-backup" . ".sql";
//podeis poner el nombre de archivo que querais con la extension que os de la gana
$EliminarTablas = false; //aqui poned si quereis que se elimen las tablas si existen

//Conectar con la base de datos
$Conexion = mysql_connect($Servidor, $Usuario, $Password);
mysql_select_db($BaseDeDatos, $Conexion);

$ListaTablas = mysql_listtables($BaseDeDatos);
For ($Numero = 0; $Numero < mysql_num_rows ($ListaTablas); $Numero++) {
$Tablas[] = mysql_tablename ($ListaTablas, $Numero);
$Querys .= CrearQuerys($Conexion, $Tablas[$Numero], $EliminarTablas);}


Function CrearQuerys($Conexion, $Tabla, $EliminarTablas) {
// Query que elimina las tablas si existen
if ($EliminarTablas) {
$QueryEliminarTabla = "DROP TABLE IF EXISTS `$Tabla`;";
}

// Query que crea la estructura de la tabla
$sql= "SHOW CREATE TABLE $Tabla;";
$Respuesta = mysql_query($sql, $Conexion);
$ArrayRespuesta = mysql_fetch_array($Respuesta);
$QueryEstructuraTabla = $ArrayRespuesta[1].";";

// Query que introduce los datos en la tabla
$sql = "SELECT * FROM $Tabla;";
$Respuesta = mysql_query($sql, $Conexion);
while ($Fila = mysql_fetch_array($Respuesta, MYSQL_ASSOC)) {
$Columnas = array_keys($Fila);
foreach ($Columnas as $Columna) {
if ( gettype($Fila[$Columna]) == "NULL" ) {
$Valores[] = "NULL";
} else {
$Valores[] = "'".$Fila[$Columna]."'";
}
}
$QueryInsertarDatos .= "INSERT INTO `$Tabla` VALUES (".implode(", ", $Valores).");\n";
unset($Valores);
}
$Contenido = <<<EOT
$QueryEstructuraTabla
$QueryInsertarDatos
EOT;

$file = "bck.sql";
$fo = fopen($file,"w+");
fwrite($fo,$Contenido);
fclose($fo);
}
?>

Última edición por VCR; 05/06/2008 a las 09:44
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 15:48.