Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/03/2010, 16:49
pixel1
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
Where en una cadena con signo de +

Hola buen dia, llevo varias horas dandole vueltas a un asunto. Enprimer lugar no se si debe ser posteado en mysql o en el foro de php; pues involucra a ambos.

Planteo mi caso:

Tengo una url del tipo:
index.php?hash=hash8v4Y5awyQxZrI8TgwF9+Yusw==


Cuando entro al index consulto en base de datos para verificar que si ya hay un registro con ese hash. La consulta la hago asi:

Código PHP:
$q="SELECT * FROM respuestas WHERE hash='".$_REQUEST['hash']."'"
Cuando imprimo la consulta lo que obtengo es lo siguiente:
SELECT * FROM respuestas WHERE hash='hash8v4Y5awyQxZrI8TgwF9 Yusw=='

Noten que el signo de + fue reempazado por un espacio y por lo tanto no obtengo resultados.

Luego hago lo siguiente:
Código PHP:
$q="SELECT * FROM respuestas WHERE hash='".str_replace(" ","+",$_REQUEST['hash'])."'"
Cuando imprimo la consulta lo que obtengo es lo siguiente:
SELECT * FROM respuestas WHERE hash='hash8v4Y5awyQxZrI8TgwF9+Yusw=='

Ahora el signo de + no desaparece pero sigo sin tener resultados.


Entonces lo que hice fue entrar al phpmyadmin, buscar el registro, editarlo desde ahi mismo y entonces ahora si mi consulta funciona. Pero no puedo estar haciendo esto, porque los hashes en mi base de datos serán enviados por correo electrónico, y un cron job instalado en el server se encargara cada 24 horas de leer el correo e insertarlos en la base de datos.