Hola a todos:
Tengo una tabla con un campo string llamado "criterio" que almacena clausulas WHERE: por ejemplo: Email_Cliente = '
[email protected]'
Tengo también un script de PHP que busca dentro de esa tabla por el campo "criterio". Pero cuando desde PHP, contruyo dinámicamente el criterio, no devuelve nada. Las SQL construidas son como la siguiente:
Código:
SELECT * FROM tabla WHERE criterio LIKE "%Telefono_Cliente = '123456' AND ( Nombre_Cliente = 'pepito' AND Apellidos_Cliente = 'perez' )%"
Esta SQL debería devolver 1 row pero desde PHP no devuelve nada. Si la ejecuto desde MySQL Browser, la SQL funciona bien y devuelve el criterio.
Es curioso pero además, si escribo en el script de PHP la SQL tal cual en una cadena, entonces sí que funciona.
Las SQLs las ejecuto con detección de errores:
Código:
try {
$rs = mysql_query($sql);
if (mysql_errno()) {
$error = "MySQL Error ".mysql_errno().": ".mysql_error()."\n<br>When executing:<br>\n$sql\n<br>";
echo $error.'<br />';
}
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
...pero ningún error se reporta.
Yo creo que se trata de un problam de escapar los caracteres del LIKE pero he probado a escaparlos con addslahes y mysql_real_escape_string pero nada.
Si alguien ha tenido el mismo problema y tiene alguna idea.....