Foros del Web » Programando para Internet » PHP »

Problema Importador Base Datos desde PHP

Estas en el tema de Problema Importador Base Datos desde PHP en el foro de PHP en Foros del Web. Hola el problema que se me presenta es cuando trato de importar una base de datos que fue generada en otro computador, cuando importo desde ...
  #1 (permalink)  
Antiguo 22/02/2009, 21:06
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Problema Importador Base Datos desde PHP

Hola el problema que se me presenta es cuando trato de importar una base de datos que fue generada en otro computador, cuando importo desde el mismo computador no hay ningun problema, obviamente ambos pcs usan el mismo programa, base de datos, el mismo Wampserver en este caso

Lo peor es que no se cual es el error, probe habilitar para ver todos los errores y no reporta nada.

Código:
$examinar=$_POST["examinar"];
$importa = "C:\wamp\bin\mysql\mysql5.0.45\bin\mysql.exe --password=$passwd --user=$usuario $bd <$examinar";
system($importa, $resultado);
if ($resultado){ 
		echo $mensaje="Error importando base de datos";
}else{ 
		echo $mensaje="Importación base de datos exitosa"; }
}
La ruta del archivo de la base de datos la recibo con:
Código:
<input name="examinar" type="file" class="style3" id="examinar" size="40" maxlength="100"/>
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.
  #2 (permalink)  
Antiguo 22/02/2009, 21:14
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema Importador Base Datos desde PHP

Tienes que trabajar con $_FILES['examinar'], te recomiendo primero mover el archivo a otra ruta, porque esta en el directorio temporal de PHP.

Código php:
Ver original
  1. $verror = array( // Se asocia con números para facilitar mantener el orden y lectura
  2.     0 => '',            // Todo en orden
  3.     1 => 'El peso del archivo es mayor del permitido en la configuración del servidor.',
  4.     2 => 'El peso del archivo es mayor del permitido en la configuración del formulario.',
  5.     3 => 'El archivo no se recibió completo..',
  6.     4 => 'El archivo no se pudo subir.',
  7.     5 => 'Error desconocido subiendo el archivo.',
  8.     6 => 'Error del servidor: No existe un directorio temporar para subir archivos.',
  9.     7 => 'Error del servidor: Error de disco guardando el archivo subido.',
  10.     9 => 'El archivo contiene una extensión no permitida.'
  11. );
  12.  
  13. $respaldo = '/ruta/archivo.sql';
  14. if(!move_uploaded_file($_FILES['examinar']['tmp_name'], $respaldo))
  15.     die('El archivo no se recibio correctamente, error: ' . $verror[$_FILES['examinar']['error']]);
  16.  
  17. // Aqui cargas el archivo
  18. $importa = 'C:\wamp\bin\mysql\mysql5.0.45\bin\mysql.exe --password=$passwd --user=$usuario $bd <' . $respaldo;
  19.  
  20. // Continuas el proceso normal

Edito: Cambie las comillas dobles de $importa, para no tener que escapar las diagonales \ con \\ y tambien te faltaria hacer alguna verificacion si otros usuarios tendran acceso al proceso.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 23/02/2009, 16:18
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Problema Importador Base Datos desde PHP

Gracias por tu respuesta, trate de hacerlo funcionar asi pero recibo el siguiente error:

Notice: Undefined index: examinar in C:\wamp\www\scv\exportar.php on line 150

Notice: Undefined index: examinar in C:\wamp\www\scv\exportar.php on line 151

Notice: Undefined index: in C:\wamp\www\scv\exportar.php on line 151
El archivo no se recibio correctamente, error:

La linea 150 y 151 corresponde a donde compruebo el archivo de respaldo y obviamente no copia el archivo a la ubicación definida en $respaldo.


Codigo actual:
Código:
   $examinar=$_POST["examinar"];  
	
//	respaldo BD actual	
	$usuario="root";  
	$passwd="";  
	$bd="SCV"; 
	$respaldo = 'C:\archivo.sql';
	

//  Mensajes de error
$verror = array( 
    0 => '',          
    1 => 'El peso del archivo es mayor del permitido en la configuración del servidor.',
    2 => 'El peso del archivo es mayor del permitido en la configuración del formulario.',
    3 => 'El archivo no se recibió completo..',
    4 => 'El archivo no se pudo subir.',
    5 => 'Error desconocido subiendo el archivo.',
    6 => 'Error del servidor: No existe un directorio temporar para subir archivos.',
    7 => 'Error del servidor: Error de disco guardando el archivo subido.',
    9 => 'El archivo contiene una extensión no permitida.'
);
	

//	Compruebo el archivo respaldo	
	if(!move_uploaded_file($_FILES['examinar']['tmp_name'], $respaldo))
    	die('El archivo no se recibio correctamente, error: ' . $verror[$_FILES['examinar']['error']]);
		
//	Importo el archivo	
	$importa = 'C:\wamp\bin\mysql\mysql5.0.45\bin\mysql.exe --password=$passwd --user=$usuario $bd <' . $respaldo;
	system($importa, $resultado);
	
}
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.
  #4 (permalink)  
Antiguo 23/02/2009, 22:30
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema Importador Base Datos desde PHP

Elimina la linea de $_POST['examinar']; porque los archivos en formularios nunca llegan en $_POST, sino en $_FILES y asegurate de que tu formulario tenga enctype="multipart/form-data", que es requerido para este tipo de envios:

Código:
<form method="post" action="tu_archivo.php" enctype="multipart/form-data">
bla bla bla
</form>
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 24/02/2009, 19:39
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Problema Importador Base Datos desde PHP

Gracias ahora logro copiar el archivo pero aun hay algo extraño aca:

Código:
$importa = "C:\wamp\bin\mysql\mysql5.0.45\bin\mysql.exe --password=$passwd --user=$usuario $bd <".$respaldo;
Ese codigo no funciona con comillas simples como tu lo pusiste, solo me funciono con comillas dobles.
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.
  #6 (permalink)  
Antiguo 24/02/2009, 19:47
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema Importador Base Datos desde PHP

Cierto, $usuario y $bd tenian que estar forzosamente entre comillas dobles o concatenados como $respaldo, sorry. Lo que me extraña es que no te de algun error con las diagonales, porque son caracteres de escape, afortunadamente funciona.
__________________
- León, Guanajuato
- GV-Foto
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 18:09.