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

Error incomprensible en consulta

Estas en el tema de Error incomprensible en consulta en el foro de Mysql en Foros del Web. Muy buenas gente. Tengo la consulta siguiente: mysql_query("INSERT INTO alta_prov (nif, nombre, primer_apellido, segundo_apellido, fecha_nac, estado_civil, profesion, direccion, telf_fijo, telf_movil ,nccorriente, fecha_solicitud) VALUES ('{$_POST['nif']}','{$_POST['name']}','{$_POST['primerape']}','{$_POST['segundoape']}','{$fecha}','{$_POST['estadocivil']}','{$_POST['profesion']}' ,'{$_POST['direccion']}','{$_POST['telfijo']}','{$_POST['telmovil']}','{$_POST['numcuenta']}',NOW())",$link); ...
  #1 (permalink)  
Antiguo 20/09/2011, 00:38
 
Fecha de Ingreso: agosto-2010
Mensajes: 28
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Error incomprensible en consulta

Muy buenas gente.

Tengo la consulta siguiente:
mysql_query("INSERT INTO alta_prov (nif, nombre, primer_apellido, segundo_apellido, fecha_nac, estado_civil,
profesion, direccion, telf_fijo, telf_movil ,nccorriente, fecha_solicitud)
VALUES ('{$_POST['nif']}','{$_POST['name']}','{$_POST['primerape']}','{$_POST['segundoape']}','{$fecha}','{$_POST['estadocivil']}','{$_POST['profesion']}'
,'{$_POST['direccion']}','{$_POST['telfijo']}','{$_POST['telmovil']}','{$_POST['numcuenta']}',NOW())",$link);

Que funciona perfectamente. En la tabla de la BD tengo entre el segundo apellido y la fecha de nacimiento un campo llamado natural, y al hacer esta consulta

mysql_query("INSERT INTO alta_prov (nif, nombre, primer_apellido, segundo_apellido, natural, fecha_nac, estado_civil,
profesion, direccion, telf_fijo, telf_movil ,nccorriente, fecha_solicitud)
VALUES ('{$_POST['nif']}','{$_POST['name']}','{$_POST['primerape']}','{$_POST['segundoape']}','{$_POST['natural']}','{$fecha}','{$_POST['estadocivil']}','{$_POST['profesion']}'
,'{$_POST['direccion']}','{$_POST['telfijo']}','{$_POST['telmovil']}','{$_POST['numcuenta']}',NOW())",$link);

deja de funcionar, me dice lo siguiente:
Ha habido un error al insertar los valores. Algo está equivocado en su sintax cerca 'natural, fecha_nac, estado_civil, profesion, direccion, telf_fijo, telf_movil ,' en la linea 1

Me estoy volviendo LOCO pues no encuentro el error en la sintaxis, a parte he probado a coger el campo natural y que se meta en primer_apellido por ejemplo y lo hace bien, es decir, que está leyendo bien los datos del formulario desde el que me traigo las variables.

¿Alguna idea? De verdad que NO entiendo que puede estar pasando. Muchas gracias.
  #2 (permalink)  
Antiguo 20/09/2011, 01:02
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Error incomprensible en consulta

¿qué tipo de campo es natural en la base, cadena de texto, numérico, fecha? dinos. Si es numérico, deberás quitar las comillas que pones delante de los corchetes. Otra posibilidad es que el valor de natural que estés pasando sea nulo. Trata de mostrar el valor de ese POST['natural'] con un echo, antes de pasarlo.
  #3 (permalink)  
Antiguo 20/09/2011, 01:11
 
Fecha de Ingreso: agosto-2010
Mensajes: 28
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error incomprensible en consulta

jurena gracias por contestar, es un varchar exactamente igual que nombre o primer o segundo apellido, como digo al final, he puesto en la primera consulta en vez de primerape, natural es decir

en lugar de ,'{$_POST['primerape']}' he puesto ,'{$_POST['natural']}'

y lo inserta perfectamente por eso digo que el valor es correcto y lo coge bien del formulario, el error me pasa cuando añado el campo extra en el insert. De verdad que me estoy volviendo loco con esto....
  #4 (permalink)  
Antiguo 20/09/2011, 01:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Error incomprensible en consulta

Código PHP:
Ver original
  1. mysql_query("INSERT INTO alta_prov (nif,".
  2.                                       "nombre,".
  3.                                       "primer_apellido,".
  4.                                       "segundo_apellido,".
  5.                                       "natural,".
  6.                                       "fecha_nac,".
  7.                                       "estado_civil,".
  8.                                       "profesion,".
  9.                                       "direccion,".
  10.                                       "telf_fijo,".
  11.                                       "telf_movil,".
  12.                                       "nccorriente,".
  13.                                       "fecha_solicitud) ".
  14. "VALUES   ('{$_POST['nif']}',".
  15.                 "'{$_POST['name']}',".
  16.                 "'{$_POST['primerape']}',".
  17.                 "'{$_POST['segundoape']}',".
  18.                 "'{$_POST['natural']}',".
  19.                 "'{$fecha}',".
  20.                 "'{$_POST['estadocivil']}',".
  21.                 "'{$_POST['profesion']}',".
  22.                 "'{$_POST['direccion']}',".
  23.                 "'{$_POST['telfijo']}',".
  24.                 "'{$_POST['telmovil']}',".
  25.                 "'{$_POST['numcuenta']}',".
  26.                 "NOW())",$link);

Intentalo así. Fijate en el blanco despues de fecha_solicitud) ".

Tambien puedes hacer

Código PHP:
Ver original
  1. echo "INSERT INTO alta_prov (nif,".
  2.                                       "nombre,".
  3.                                       "primer_apellido,".
  4.                                       "segundo_apellido,".
  5.                                       "natural,".
  6.                                       "fecha_nac,".
  7.                                       "estado_civil,".
  8.                                       "profesion,".
  9.                                       "direccion,".
  10.                                       "telf_fijo,".
  11.                                       "telf_movil,".
  12.                                       "nccorriente,".
  13.                                       "fecha_solicitud) ".
  14. "VALUES   ('{$_POST['nif']}',".
  15.                 "'{$_POST['name']}',".
  16.                 "'{$_POST['primerape']}',".
  17.                 "'{$_POST['segundoape']}',".
  18.                 "'{$_POST['natural']}',".
  19.                 "'{$fecha}',".
  20.                 "'{$_POST['estadocivil']}',".
  21.                 "'{$_POST['profesion']}',".
  22.                 "'{$_POST['direccion']}',".
  23.                 "'{$_POST['telfijo']}',".
  24.                 "'{$_POST['telmovil']}',".
  25.                 "'{$_POST['numcuenta']}',".
  26.                 "NOW())";

Para ver la query tal y como llega al servidor...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 20/09/2011 a las 01:30
  #5 (permalink)  
Antiguo 20/09/2011, 01:20
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 17 años, 11 meses
Puntos: 14
Respuesta: Error incomprensible en consulta

Bueno, descartado el valor del POST nos queda el nombre en la consulta. ¿Seguro que es "natural" y no nada parecido? (Lo digo porque errores ortográficos son siempre difíciles de detectar)

Por otra parte, yo probaría a hacer la prueba contraria. Es decir, sustituir, en la primera consulta el texto de primerape por natural y así estar seguros que el problema está en el número de campos o sólo en ese concreto.
__________________
No hay cuerda desafinada sino músico progresivo
  #6 (permalink)  
Antiguo 20/09/2011, 04:10
 
Fecha de Ingreso: agosto-2010
Mensajes: 28
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error incomprensible en consulta

Smolky eso es lo que he dicho antes que he hecho, sustituir primeape por natural y en el campo primerape inserta el valor introducido en el campo texto del formulario correspondiente a natural correctamente. quimfv tu sentencia da error, se queja de T_STRING, la mia funciona bien la primera, es la segunda la que da problemas al añadir el campo natural.
  #7 (permalink)  
Antiguo 20/09/2011, 04:21
 
Fecha de Ingreso: agosto-2010
Mensajes: 28
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error incomprensible en consulta

Joder, lo acabo de resolver, qué locura... menuda tontería pero no era trivial, resulta que natural es una palabra reservada de mysql ya podía volverme loco ya... lo escribo por si a alguien le sirve.

¡Saludos y gracias a tod@s!
  #8 (permalink)  
Antiguo 20/09/2011, 04:38
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 17 años, 11 meses
Puntos: 14
Respuesta: Error incomprensible en consulta

Cita:
Iniciado por KLap Ver Mensaje
Joder, lo acabo de resolver, qué locura... menuda tontería pero no era trivial, resulta que natural es una palabra reservada de mysql ya podía volverme loco ya... lo escribo por si a alguien le sirve.

¡Saludos y gracias a tod@s!
Sí, a esa prueba me refería. Es decir, intentar insertar en natural para ver si era problema concreto de ese campo (no del valor del $_POST ya que eso estaba descartado con tu prueba)

¡Me alegro que funcione!
__________________
No hay cuerda desafinada sino músico progresivo

Etiquetas: insert, campos
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:56.