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

Error en Bd

Estas en el tema de Error en Bd en el foro de Mysql en Foros del Web. Hola, llevo dos días dandole vueltas al siguiente erro si alguien me echara un cable le estaría agradecido: Query failed: SQLSTATE[42000]: Syntax error or access ...
  #1 (permalink)  
Antiguo 28/06/2013, 10:17
Avatar de maligix  
Fecha de Ingreso: julio-2011
Ubicación: Barcelona
Mensajes: 29
Antigüedad: 13 años, 4 meses
Puntos: 2
Error en Bd

Hola, llevo dos días dandole vueltas al siguiente erro si alguien me echara un cable le estaría agradecido:



Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 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 'WHERE id = '10'' at line 19

El código es el siguiente:

Código MySQL:
Ver original
  1. UPDATE " . $this->TBL_MEMBERSFINAL . " SET
  2.               logoimagen = :logoimagen,
  3.               nombreempresa = :nombreempresa,
  4.               descripcion = :descripcion,
  5.               categoriapro0 = :categoriapro0,
  6.               categoriapro1 = :categoriapro1,
  7.               categoriapro2 = :categoriapro2,
  8.               pagweb = :pagweb,
  9.               firstName = :firstName,
  10.               lastName = :lastName,
  11.               emailAddress = :emailAddress,
  12.               provincia = :provincia,
  13.               poblacion = :poblacion,
  14.               calle = :calle,
  15.               numero = :numero,
  16.               cifnifnie = :cifnifnie,
  17.               username = :username,
  18.               $passwordSql           
  19.               WHERE id = :id

Cita:
Editado: Código de programación no permitido en foros de BBDD.

Última edición por gnzsoloyo; 28/06/2013 a las 10:20 Razón: Código de porgramación no permitido en foros de BBDD.
  #2 (permalink)  
Antiguo 28/06/2013, 10:21
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: Error en Bd

El campo final (el de la password) no está indicado.

PD: No postees código de programación en los foros de BBDD. Sólo el SQL.
__________________
¿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 28/06/2013, 12:42
Avatar de maligix  
Fecha de Ingreso: julio-2011
Ubicación: Barcelona
Mensajes: 29
Antigüedad: 13 años, 4 meses
Puntos: 2
Respuesta: Error en Bd

El password lo declaro previamente justo antes del sql:
Cita:
Editado: No se postea código no SQL
El problema debe de ser otro...

Gracias de todas formas! Si se te ocurre alguna otra cosa, el caso es que el error en si es muy ambiguo y no encuentro nada en otros post parecidos que se pueda adaptar a lo que estoy haciendo.

Última edición por gnzsoloyo; 28/06/2013 a las 13:33
  #4 (permalink)  
Antiguo 28/06/2013, 13:36
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: Error en Bd

El error te resulta ambiguo y confuso porque estás mirando programación, y no SQL.
Captura la sentencia una vez que el FMWK haya reemplazado las variables por sus valores finales, y entonces veremos qué es lo que MySQL realmente está recibiendo.
Uno dellos mayores problemas de embeber SQL en un lenguaje de programación, es que los defectos de los datos que las variables contienen pueden romper la sintaxis del SQL, y eso resulta invisible mirando el código programado.
Prueba la consulta con los datos reales en phpMyadmin o algo como eso, y entonces veremos.

Nota: Las normas de los foros de BBDD indican explícitamente que no se debe postear código de ningún lenguaje de programación en los subforos de Bases de Datos.
Por favor, trata de seguir esa directiva.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 28/06/2013, 14:40
Avatar de maligix  
Fecha de Ingreso: julio-2011
Ubicación: Barcelona
Mensajes: 29
Antigüedad: 13 años, 4 meses
Puntos: 2
Respuesta: Error en Bd

Hola, a que te refieres con eso de embeber tiene algo que ver con ir de copas?

Si no posteo el codigo como puedo mostrar lo que me pasa, tienes alguna otra forma de comucicación, la telepatica tal vez?

De todas maneras gracias por el esfuerzo!
  #6 (permalink)  
Antiguo 28/06/2013, 14:59
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: Error en Bd

En los foros de bases de datos tenemos una regla específica que indica que no se debe postear código de programación, sin importar el lenguaje de que se trate.
Eso se hace por varias causas:
1) No todos los que se dedican a bases de datos programan. No es un requisito básico y ni siquiera general.
2) Los lenguaje de programación ensucian el SQL con variables cuyos verdaderos valores desconocemos, escondiendo los problemas detrás de elementos que no pertenecen al SQL.
3) No todos los DBA que programan lo hacen en todos los lenguajes, por ende, no puedes esperar que entiendan lo que haces con eso.
4) PHP no es MySQL, ni tampoco los frameworks son obligatorios para el PHP. Ergo, no necesariamente entendemos cómo se usan, ni tenemos por qué ponernos a averiguarlo. Trabajamos con SQL, no con programación.
5) En FDW hay foros específicos de programación en diferentes lenguajes. Allí es suelen estar los expertos en esos temas, y no por acá. Postear temas de programación en este subforo es la mejor forma de que los que realmente te pueden solucionar problemas de ese tipo jamás lean tu post.

finalmente, "embeber", en programación, es sinónimo de incrustar, es decir, poner algo dentro de otra cosa, en este caso un lenguaje de consultas (SQL) dentro del lenguaje de programación.

Eso, al menos, ya deberías saberlo...


Entonces, si el problema es de programación, o es el incorrecto manejo del framework lo que ocasiona el error de sintaxis en el SQL generado, puedo pasarte el post al foro adecuado, sino, haz lo que te dije: Captura la consulta una vez creada y antes de ejecutarla, y pruébala en phpMyadmin o lo que sea que uses.
O por lo menos, postea ese código SQL con valores reales (no con las variables) acá, y veremos qué es lo que está fallando.
Pero por experiencia yo me inclino a pensar que es un problema generado por los datos que vienen en esas variables. El 99% de las veces, esa es la causa, cuando se crean sentencias SQL programáticamente.
__________________
¿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: bd, 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 19:46.