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

Me larga error pero no encuentro donde

Estas en el tema de Me larga error pero no encuentro donde en el foro de Mysql en Foros del Web. Cuando intento meter via php esto en la base de datos me sale este error, pero no acabo de entender donde está el fallo. You ...
  #1 (permalink)  
Antiguo 11/01/2009, 11:20
Avatar de ESNOLA  
Fecha de Ingreso: octubre-2006
Mensajes: 188
Antigüedad: 17 años, 6 meses
Puntos: 20
Me larga error pero no encuentro donde

Cuando intento meter via php esto en la base de datos me sale este error, pero no acabo de entender donde está el fallo.

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 '"Hombre pero si esta como anuncio global... toma: #include <Ssj4justdale/d' at line 2 [1064]

UPDATE tabla_posts SET post_texto = "Hombre pero si esta como anuncio global... toma: #include &lt;Ssj4justdale/diagnolmovements/diagnol-movement/diagnol-movement.dme&gt;\" WHERE post_id =11628


Las características del campo post_texto son
Tipo ---> mediumtext
cotejamiento --->utf8_unicode_ci
Nulo --->No

¿Alguien encuentra algo?

Saludos
  #2 (permalink)  
Antiguo 11/01/2009, 12:02
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Respuesta: Me larga error pero no encuentro donde

Me da la impresión que el error está en la cadena de texto. Probablemente alguno de los caracteres de la misma está generando problemas. Proba asignar una cadena con caracteres normales (osea letras y números).
  #3 (permalink)  
Antiguo 11/01/2009, 13:06
Avatar de ESNOLA  
Fecha de Ingreso: octubre-2006
Mensajes: 188
Antigüedad: 17 años, 6 meses
Puntos: 20
Respuesta: Me larga error pero no encuentro donde

Si, es eso, el caracter especial es el que abajo destaco y está casi al final y lo que está haciendo es "escapar" la doble comilla del final:
"Hombre pero si esta como anuncio global... toma: #include &lt;Ssj4justdale/diagnolmovements/diagnol-movement/diagnol-movement.dme&gt;\"

Ahora bien, ¿como puedo solucionar esto?, no puedo alterarlo "manualmente" puesto que son datos que se toman de una tabla para insertar en otra tabla.

Saludos
  #4 (permalink)  
Antiguo 11/01/2009, 13:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Me larga error pero no encuentro donde

Es lo que te dice Tolaware.
Yo, si sólo estamos hablando de MySQL, observo que la doble comilla de cierre final está escapada con una barra. Eso no permite cerrar la cadena, por lo que te digo que pruebes dos posibilidades; no sé si la última barra forma parte de la dirección o no.
UPDATE tabla_posts SET post_texto = "Hombre pero si esta como anuncio global... toma: #include &lt;Ssj4justdale/diagnolmovements/diagnol-movement/diagnol-movement.dme&gt;\\" WHERE post_id =11628
o esta otra, si la barra no forma parte de la dirección.
UPDATE tabla_posts SET post_texto = "Hombre pero si esta como anuncio global... toma: #include &lt;Ssj4justdale/diagnolmovements/diagnol-movement/diagnol-movement.dme&gt;" WHERE post_id =11628

EDITO porque entramos a la vez, Esnola.
Si recibes en PHP la cadena como una variable, puedes pasarle una función que añada el escape, me refiero a ADDSLASHES(), antes de volver a introducirla en la sintaxis MySQL. Es lo que se me ocurre.

Última edición por jurena; 11/01/2009 a las 14:53
  #5 (permalink)  
Antiguo 11/01/2009, 14:04
Avatar de ESNOLA  
Fecha de Ingreso: octubre-2006
Mensajes: 188
Antigüedad: 17 años, 6 meses
Puntos: 20
De acuerdo Respuesta: Me larga error pero no encuentro donde

Arriba ya pongo que el problema era que la barra inclinada hacia escapar las comillas.
La solución me la han dado en este Tema

Saludos y gracias
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:32.