Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

problema con data load infile

Estas en el tema de problema con data load infile en el foro de Mysql en Foros del Web. Hola etoy tratando de hace un data load infile desde un archivo txt a sql pero no me deja devuelve errores como version de sql ...
  #1 (permalink)  
Antiguo 14/10/2011, 13:14
 
Fecha de Ingreso: abril-2008
Ubicación: Chihuahua Mexico
Mensajes: 166
Antigüedad: 14 años, 2 meses
Puntos: 15
problema con data load infile

Hola etoy tratando de hace un data load infile desde un archivo txt a sql pero no me deja devuelve errores como version de sql no permite estos comandos que claro que si los permite

y cuando quito el local me pone errores de acceso a la bd para no hacerla tan larga en modo local si deja pero en el servidor no me deja, ya he pusto la direccion de mil maneras y nada este es el codigo

Código PHP:
Ver original
  1. mysql_query("LOAD DATA local INFILE '/alsuper2/$filename' INTO TABLE $ttmp FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'") or die("Error:".mysql_error());


no exisitira otro tipo de sentencias aparte de load data para hacer esto??? (a esto re refiero pasar de un txt a una bd el contenido estando el txt y el php en el mismo fichero)
  #2 (permalink)  
Antiguo 14/10/2011, 14:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 7 meses
Puntos: 2658
Respuesta: problema con data load infile

Si estás intentando hacer esto en un hosting, primero deberías comprobar que el usuario que te proveen tenga permisos de FILE, sin lo cual no podrás hacer una carga remota. Ten en cuenta que la clausula LOCAL le indica al MySQL que el archivo no está en el servidor sino en la PC del cliente (la tuya, por caso), y para eso necesitas permisos de FILE.
Por otro lado, sería bueno que nos digas qué versión de MySQL tiene el servidor donde estás tratando de cargar los datos. Si hay diferencias entre la que usas y la del hosting, puede explicar mucho.
Además, ten cuidado con el "\n" que pones en el string. un "n" escapado es interpretado por el PHP como un salto de línea y llega incorrectamente al server de MySQL. Para que PHP lo tome bien deberías escapar el escape:
Código PHP:
Ver original
  1. mysql_query("LOAD DATA local INFILE '/alsuper2/$filename' INTO TABLE $ttmp FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\n'") or die("Error:".mysql_error());
de ese modo el escape llegará a MySQL correctamente.

Finalmente, es necesario que compruebes que el archivo que intentas subir esté en UTF-8, de lo contrario MySQL leerá cualquier basura.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: data, infile, load, php, query, sql
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 00:07.