Foros del Web » Programando para Internet » PHP »

Me canse de buscar el error

Estas en el tema de Me canse de buscar el error en el foro de PHP en Foros del Web. Buenas a todos, estoy desesperado en cierta manera, no encuentro el error en una sentencia mysql embebida en una pagina php. Resulta que estoy haciendo ...
  #1 (permalink)  
Antiguo 17/07/2013, 07:56
 
Fecha de Ingreso: marzo-2013
Mensajes: 8
Antigüedad: 11 años, 1 mes
Puntos: 0
Exclamación Me canse de buscar el error

Buenas a todos, estoy desesperado en cierta manera, no encuentro el error en una sentencia mysql embebida en una pagina php. Resulta que estoy haciendo una importacion de archivos CSV y con el codigo actual hace la importacion correctamente pero tengo el error: "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 ''nombredetabla'' at line 1". Use un codigo que antes ya me habia funcionado sin problema alguno en otro programa mas compleo inclusive, tambien utilice el generado por el phpmyadmin pero me fue imposible hacer desaparecer el error. Les muestro el código en cuestion:
Código PHP:
$import "INSERT INTO `tabla`(`RECO`,`TIPODELOCAL`,`DESCRIPCION`,`A`) VALUES ($data[0],\'$data[1]\',\'$data[2]\',\'$data[3]\');"
$data[0] es numerico y los demas string
  #2 (permalink)  
Antiguo 17/07/2013, 08:03
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Respuesta: Me canse de buscar el error

Con esto debería funcionar:

Código PHP:
$import mysql_query("INSERT INTO tabla (RECO, TIPODELOCAL, DESCRIPCION, A) VALUES ('".$DATA[0]."', '".$DATA[1]."', '".$DATA[2]."', '".$DATA[3]."')"); 
  #3 (permalink)  
Antiguo 17/07/2013, 08:03
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Me canse de buscar el error

Código PHP:
Ver original
  1. $import = mysql_query("INSERT INTO tabla (`RECO`,`TIPODELOCAL`,`DESCRIPCION`,`A`)  VALUES ({$DATA[0]}, '{$DATA[1]}', '{$DATA[2]}', '{$DATA[3]}'");


Asi no es mas facil ? no tantas comillas... aprovecha las comillas dobles!! puedes meter variables dentro solo que como son arrays las metes entre llaves {}
__________________
Salu2!

Última edición por Italico76; 17/07/2013 a las 08:09
  #4 (permalink)  
Antiguo 17/07/2013, 08:12
 
Fecha de Ingreso: marzo-2013
Mensajes: 8
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Me canse de buscar el error

Cita:
Iniciado por ZydRick Ver Mensaje
Con esto debería funcionar:

Código PHP:
$import mysql_query("INSERT INTO tabla (RECO, TIPODELOCAL, DESCRIPCION, A) VALUES ('".$DATA[0]."', '".$DATA[1]."', '".$DATA[2]."', '".$DATA[3]."')"); 
Gracias por las respuestas desde ya, este codigo me da Query was empty
  #5 (permalink)  
Antiguo 17/07/2013, 08:14
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Me canse de buscar el error

Código PHP:
Ver original
  1. $import = mysql_query("INSERT INTO tabla (`RECO`,`TIPODELOCAL`,`DESCRIPCION`,`A`)  VALUES ({$DATA[0]}, '{$DATA[1]}', '{$DATA[2]}', '{$DATA[3]}'") or die( mysql_error() ) ;

y nos dice que error te arroja
__________________
Salu2!
  #6 (permalink)  
Antiguo 17/07/2013, 08:22
 
Fecha de Ingreso: marzo-2013
Mensajes: 8
Antigüedad: 11 años, 1 mes
Puntos: 0
El error es:
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 ''tabla'' at line 1

Query was empty me dio porque tuve un error al pegar el codigo, pero al corregirlo me salio el error arriba citado

Yendo a un codigo insert sumamente basico, el que usaba en otro importador de CSV, que funcionaba correctamente, en este caso no
Código PHP:
$import "INSERT INTO tabla (RECO,TIPODELOCAL,DESCRIPCION,A)  VALUES ('$DATA[0]', '$DATA[1]', '$DATA[2]', '$DATA[3]')"
Y eso que en aquel caso usaba '$data[0]','$data[1]','$data[2]'...etc sin distincion de numericos o strings

Cita:
Iniciado por gustalitro Ver Mensaje
Buenas a todos, estoy desesperado en cierta manera, no encuentro el error en una sentencia mysql embebida en una pagina php. Resulta que estoy haciendo una importacion de archivos CSV y con el codigo actual hace la importacion correctamente pero tengo el error: "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 ''nombredetabla'' at line 1". Use un codigo que antes ya me habia funcionado sin problema alguno en otro programa mas compleo inclusive, tambien utilice el generado por el phpmyadmin pero me fue imposible hacer desaparecer el error. Les muestro el código en cuestion:
Código PHP:
$import "INSERT INTO `tabla`(`RECO`,`TIPODELOCAL`,`DESCRIPCION`,`A`) VALUES ($data[0],\'$data[1]\',\'$data[2]\',\'$data[3]\');"
$data[0] es numerico y los demas string
Y en este caso la variable $import la lleno con la consulta y luego ejecuto el mysql_query()

Última edición por Triby; 17/07/2013 a las 13:18
  #7 (permalink)  
Antiguo 17/07/2013, 12:47
Avatar de RandomName  
Fecha de Ingreso: julio-2013
Mensajes: 32
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Me canse de buscar el error

$import = mysql_query("INSERT INTO tabla ('RECO','TIPODELOCAL','DESCRIPCION','A') VALUES ({$DATA[0]}, '{$DATA[1]}', '{$DATA[2]}', '{$DATA[3]}'") or die( mysql_error() ) ;



a mi me paso varias vecs que el problema es por las comillas que utilizas, intenta con esto :)
  #8 (permalink)  
Antiguo 17/07/2013, 13:16
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Me canse de buscar el error

prueba de esta manera y comprueba que llegan todos los datos

Código PHP:
Ver original
  1. echo "INSERT INTO tabla (RECO, TIPODELOCAL, DESCRIPCION, A) VALUES ('".$DATA[0]."', '".$DATA[1]."', '".$DATA[2]."', '".$DATA[3]."');

la tabla se llama tabla ?? es correcto?
los campos de la tabla son identicamente iguales? compruebalo
comprueba la longitud de caracteres por si acaso

saludos
  #9 (permalink)  
Antiguo 17/07/2013, 13:35
Avatar de qvixote  
Fecha de Ingreso: marzo-2008
Mensajes: 79
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Me canse de buscar el error

Si pruebas con:

Código:
$query = "INSERT INTO tabla (`RECO`,`TIPODELOCAL`,`DESCRIPCION`,`A`)  VALUES ({$DATA[0]}, '{$DATA[1]}', '{$DATA[2]}', '{$DATA[3]}'";
$import = mysql_query($query) or die( mysql_error()." - ".$query) ;
Esto te mostrará el error y también la query en la forma en que se está armando, para que puedas ver si hay algún error más claramente. Ejecuta eso y dinos el mensaje ahora.

Etiquetas: mysql, sql, 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 12:16.