Foros del Web » Programando para Internet » PHP »

sintaxis y escape de comillas

Estas en el tema de sintaxis y escape de comillas en el foro de PHP en Foros del Web. hola les cuento, tengo un txt que quiero cargar a mysql el txt esta separado por , y encerrado por " esta es la consulta ...
  #1 (permalink)  
Antiguo 30/07/2011, 09:44
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 14 años, 5 meses
Puntos: 5
sintaxis y escape de comillas

hola les cuento, tengo un txt que quiero cargar a mysql el txt esta separado por , y encerrado por "
esta es la consulta

Código MySQL:
Ver original
  1. LOAD DATA INFILE '/var/www/html/miweb/carpeta/output_2011-07-21.txt' INTO TABLE tabla

en el php si hago esto marca error
Código PHP:
$insertar " LOAD DATA INFILE '/var/www/html/miweb/carpeta/output_2011-07-21.txt' INTO TABLE tabla
FIELDS TERMINATED BY ',' ENCLOSED BY ''
LINES TERMINATED BY '\n' ignore 1 lines
"
;
mysql_query($insertar) or die (mysql_error()); 
y si hago esto para intentar escapar las comillas me marca error en el mysql

Código PHP:
$insertar " LOAD DATA INFILE '/var/www/html/miweb/carpeta/output_2011-07-21.txt'""INTO TABLE tabla".
"FIELDS TERMINATED BY ','""ENCLOSED BY \'\"'".
"LINES TERMINATED BY '\n' IGNORE 1 LINES
"
;

mysql_query($insertar) or die (mysql_error()); 
algún otra manera que se les ocurra
gracias
__________________
De informáticos y locos todos tenemos un poco
  #2 (permalink)  
Antiguo 30/07/2011, 10:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: sintaxis y escape de comillas

El problema es que el "\n" del LINES TERMINATED es interpretado por PHP como un salto de línea, por lo que en realidad lo que debes escapar es el escape. Esto pasa porque en realidad estás embebiendo un lenguaje (SQL) en otro (PHP) y tienes que asegurarte de que lo que cada uno procese de el resultado correcto.

Puedes ponerlo así:

Código PHP:
Ver original
  1. $insertar = "LOAD DATA INFILE '/var/www/html/miweb/carpeta/output_2011-07-21.txt' \n";
  2. $insertar .= "INTO TABLE tabla ";
  3. $insertar .= "FIELDS TERMINATED BY ',' ENCLOSED BY '\"' \n";
  4. $insertar .= "LINES TERMINATED BY '\\n' IGNORE 1 LINES\n";
  5.  
  6. mysql_query($insertar) or die (mysql_error());
Los "\n" que esoy poniendo es nada más que para que no se peguen los caracteres cercanos de las diferentes partes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 30/07/2011, 11:19
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: sintaxis y escape de comillas

muchas gracias si funciono
__________________
De informáticos y locos todos tenemos un poco

Etiquetas: comillas, escape, html, mysql, sintaxis, tabla
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 11:57.