Foros del Web » Programando para Internet » PHP »

LOAD DATA...o sobre la sintaxis SQL

Estas en el tema de LOAD DATA...o sobre la sintaxis SQL en el foro de PHP en Foros del Web. Tengo un problema cuando quiero cargar un archivo txt que esta separado por ; que levante previamente y de manera correcta a una tabla de ...
  #1 (permalink)  
Antiguo 24/12/2004, 06:51
 
Fecha de Ingreso: noviembre-2004
Mensajes: 9
Antigüedad: 13 años
Puntos: 0
LOAD DATA...o sobre la sintaxis SQL

Tengo un problema cuando quiero cargar un archivo txt que esta separado por ; que levante previamente y de manera correcta a una tabla de MySQL.
El problema esta en la sintaxis de la sentencia sql, porque mucha idea no tengo y tome como base la que entrega el phpMyAdmin. PHP no me dice de ningun error en ningun lado, solamente me doy cuenta que esta mal porque la tabla esta siempre vacia...
Tambien probe solamente lo basico, como $sql = "LOAD DATA LOCAL INFILE " . $HTTP_POST_FILES['archivo']['tmp_name']. "INTO TABLE cuentas", sin/con comillas simples, con/sin el $http_post y tampoco andubo.
Inserto solamente la parte donde declaro la sentencia sql y la consulta a la base de datos, para no ocupar mucho espacio y sea engorrosa la lectura.
Si alguien me tira una ayuda lo agradeceria!

Código:
$sql = "LOAD DATA LOCAL INFILE " . $HTTP_POST_FILES['archivo']['tmp_name']. "INTO TABLE cuentas FIELDS TERMINATED BY \";\" ENCLOSED BY '' ESCAPED BY \\\\ LINES TERMINATED BY \\r\\n";
echo "<BR>Llenado de la base de datos: ";
if (!mysql_query($sql, $link)) {
   echo "Failed ";
   exit;
}
else
   echo "OK<BR><BR>";
Edit:
Código:
Me fije y el error que me salta con mysql_error es este:
Error LOAD DATA INFILE 'C:\windows\temp\php222.tmp' INTO TABLE `recitales` FIELDS TERMINATED BY ';' 
MySQL dice: File 'C:windows empphp222.tmp' not found (Errcode: 22)
Ni idea de como hacer que funcione...

Última edición por Warhate; 24/12/2004 a las 07:04 Razón: Encontre algo del error...
  #2 (permalink)  
Antiguo 07/06/2005, 20:35
 
Fecha de Ingreso: junio-2005
Mensajes: 2
Antigüedad: 12 años, 6 meses
Puntos: 0
El problema puede estar en las barras simples. Tendrías que pasar primero el $HTTP_POST_FILES['archivo']['tmp_name'] por una str_replace para que te reemplace las barras simples por dobles. Sería algo así:
$tmp_name = $HTTP_POST_FILES['archivo']['tmp_name'];
$tmp_name = str_replace('\\', '\\\\', $tmp_name);
Ok?
Suerte!
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 19:41.