Foros aprenderaprogramar.com

Aprender a programar => De todo un poco... => Mensaje iniciado por: DrKlauss en 05 de Septiembre 2011, 08:03

Título: #1064 - You have an error in your SQL syntax con UPDATE en MySql reemplazo texto
Publicado por: DrKlauss en 05 de Septiembre 2011, 08:03
Saludos amigos, estoy tratando de hacer un reemplazo de una cadena de texto dentro de una base de datos por otra y me sale el siguiente error:

#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 'iframe',size: {x:850, y: window.getSize().size.y-75} }"><font color="#0066cc"> H' at line 1

¿Alguien que haya resuelto errores de este tipo?
Título: Re:#1064 - You have an error in your SQL syntax
Publicado por: Alex Rodríguez en 06 de Septiembre 2011, 09:53
¿Puedes poner el código sql que has intentando ejecutar?
Título: Re:#1064 - You have an error in your SQL syntax
Publicado por: DrKlauss en 07 de Septiembre 2011, 12:41
Te pongo el código: UPDATE `jos_content` SET `fulltext`= REPLACE (`fulltext`, 'Para visitar nuestra tienda de manualidades pulsa aquí:&nbsp;<a class="modal" href="index.php?option=com_ckforms&amp;view=ckforms&amp;id=1&amp;template=tienda" id="popup" rel="{handler: 'iframe',size: {x:850, y: window.getSize().size.y-75} }"><font color="#0066cc"> Visitar la tienda de manualidades.</font></a><font color="#000000"> </font>',  'Ahora mismo hemos deshabilitado por mantenimiento la tienda de manualidades. En breve la rehabilitaremos. Gracias.');

Título: falta backslah caracter de escape
Publicado por: Mario R. Rancel en 08 de Septiembre 2011, 12:38
Hola DrKlauss, te voy a dar unas indicaciones que creo te resuelvan el problema. Si te fijas dentro del texto que buscas reemplazar aparece el caracter comilla simple '. Dicho caracter es para mysql un identificador de fin de cadena; dentro del texto tienes dos caracteres de este tipo, además de los de apertura y cierre. Por cada caracter especial que tengas dentro del texto debes introducir precediéndolo el caracter de escape o backslash \, de forma que mysql pueda interpretar que no se trata de una apertura o cierre, sino simplemente de texto. En concreto, en vez de handler: 'iframe',size: , escribir handler: \'iframe\',size:
Prueba esto y ya nos cuentas si se resuelve o sigue dando problemas...
Título: Re:#1064 - You have an error in your SQL syntax
Publicado por: DrKlauss en 10 de Septiembre 2011, 11:35
Resuelto! Efectivamente era el problema de las comillas simples, la verdad es que no se me había pasado por la cabeza que pudiera ser eso. Muy agradecido...