Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/11/2010, 06:29
jacobin84
 
Fecha de Ingreso: noviembre-2010
Ubicación: España
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Pregunta Problema al restaurar una BD creada con YoDumpeo 1.5 desde PHP

Mi problema es el siguiente: tengo una BD en MYSQL y estoy usando el script YoDumpeo para exportarla a un fichero .sql, que posteriormente comprimo con el zip que trae php. El archivo se genera correctamente, y si desde phpmyadmin lo importo funciona de maravilla. El problema está en que cuando lo intento hacer desde php da error de sintaxis:

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE..."

tiene pinta de tener que ver con el juego de caracteres o algo así...este es el script para rescatar:

Código PHP:
<? // Comprobación de autenticación.
if(!isset($_COOKIE['gestiona_adm']))
    
header("Location: ../login.php");

include_once(
"../config.php");

// Formateamos el directorio de copias de seguridad si existe, si no lo creamos.
if(is_dir("../copiaSeg"))
{
    
rmdir_recursivo("../copiaSeg");
}
else
{
    
mkdir("../copiaSeg");
}

// Rescatamos el fichero.
$origen $_FILES['rutaFichero']['tmp_name'];
$destino $GB_ABSOLUTE_PATH."/copiaSeg/bd_gestiona.zip";    
move_uploaded_file($origen$destino);

// Lo descomprimimos.
echo ">> Descomprimiendo el fichero...<br/>";
$zip = new ZipArchive;
if (
$zip->open($destino) === TRUE)
{
    
$zip->extractTo($GB_ABSOLUTE_PATH."/copiaSeg/");
    
$zip->close();
    echo 
">> Descompresión finalizada con éxito.<br/><br/>";
    
// Borramos el ZIP.
    
unlink($destino) or die(">> Se produjo un error mientras se limpiaba el directorio.");
}
else
{
    echo 
">> Se produjo un error mientras se descomprimía el fichero.<br/>";
    die(
">> Asegurese de que el fichero se creó con el software Gestiona.<br/>");
}

echo 
">> Se inició el proceso de restauración. Tenga paciencia, el proceso puede llevarle unos minutos...<br /><br />";
$link Conectarse();

// Abrimos el directorio para ver el nombre del fichero.
if ($gestor opendir($GB_ABSOLUTE_PATH."/copiaSeg/"))
{
    while (
false !== ($archivo readdir($gestor)))
    {
        
$seccion explode("."$archivo);
        if(
$seccion[1] == "sql")
        {
            
$handle = @fopen($GB_ABSOLUTE_PATH."/copiaSeg/".$archivo"r");
            if (
$handle)
            {
                
$consulta "";    
                while((
$buffer fgets($handle)) !== false)
                {
                    if(
$buffer[0] != "#")
                    {
                        
$consulta.=$cadena;
                    }
                }
                    
                if (!
feof($handle))
                    die(
">> Se produjo un error mientras se leía el fichero sql.<br />");
                
                
fclose($handle);
                
                
// Limpiamos la cadena de saltos de linea y espacios innecesarios.
                
echo "$consulta";
                
mysql_query($consulta$link)or
                    die(
">> Se produjo un error en la importación de la base de datos: ".mysql_error());
            }
            else
                echo 
">> Se produjo un error mientras se abría el fichero sql.<br />";
        }
        else
            echo 
$seccion[1];
    }
    
closedir($gestor);
}
    
echo 
"El proceso de restauración se completó con éxito.";

?>
PD: soy nuevo en los foros, lo siento si he creado temas repetidos o algo de eso, la verdad es que aun no entiendo bien esto d los foros. Mil gracias