Foros del Web » Programando para Internet » PHP »

Problema con comillas en consulta

Estas en el tema de Problema con comillas en consulta en el foro de PHP en Foros del Web. Llevo varios intentos y no se cómo escapar las comillas para ejecutar esta sentencia Código PHP: $resulta = $bd -> consultar_por_fila ( "select * from articulo where ((titulo=$titulo) and (subtitulo=$subtitulo)" );  El ...
  #1 (permalink)  
Antiguo 19/09/2007, 11:43
 
Fecha de Ingreso: julio-2004
Mensajes: 117
Antigüedad: 19 años, 9 meses
Puntos: 0
Problema con comillas en consulta

Llevo varios intentos y no se cómo escapar las comillas para ejecutar esta sentencia

Código PHP:
$resulta=$bd->consultar_por_fila("select * from articulo where ((titulo=$titulo) and (subtitulo=$subtitulo)"); 
El problema es que el titulo y el subtitulo pueden tener comillas simples (como en inglés), por ejemplo:

titulo -> hola's mundo

El titulo viene de un POST:
Si lo uso tal cual viene con --> hola\'s mundo
Si uso stripslashes queda --> hola's mundo

Pero al usarlos en la sentencia los 2 fallan:

Código PHP:
Error en consultaYou have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near ''s mundo) and (subtitulo=) 
Parece claro que es por la comilla, pero no logro escaparlo de forma que funcione.

¿Alguien se ha encontrado con esto y sabe solucionarlo?

Muchas gracias
__________________
Uno para todos y todos para uno
  #2 (permalink)  
Antiguo 19/09/2007, 13:12
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Problema con comillas en consulta

tenés que escapar los datos de alguna forma... $bd es una instancia de una clase q hiciste vos? Deberías hacer algún método para que escape los datos... tampoco estabas poniendole comillas a $titulo y a $subtitulo en la consulta, con lo que te hubiese dado error de todas formas...

Código PHP:
$resulta=$bd->consultar_por_fila("select * from articulo where ((titulo= '"mysql_real_escape_string($titulo) . "') and (subtitulo='"mysql_real_escape_string($subtitulo) . "')"); 
  #3 (permalink)  
Antiguo 22/09/2007, 05:47
 
Fecha de Ingreso: julio-2004
Mensajes: 117
Antigüedad: 19 años, 9 meses
Puntos: 0
Re: Problema con comillas en consulta

Gracias Seppo, pero no me funciona.
__________________
Uno para todos y todos para uno
  #4 (permalink)  
Antiguo 23/09/2007, 08:37
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Problema con comillas en consulta

¿Qué error te devuelve? Porque acabo de notar que tenías un "(" de más también =)
Código PHP:
$resulta=$bd->consultar_por_fila("select * from articulo where (titulo= '"mysql_real_escape_string($titulo) . "') and (subtitulo='"mysql_real_escape_string($subtitulo) . "')"); 
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:45.