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:
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.SELECT * FROM tabla WHERE criterio LIKE "%Telefono_Cliente = '123456' AND ( Nombre_Cliente = 'pepito' AND Apellidos_Cliente = 'perez' )%"
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:
...pero ningún error se reporta.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"; }
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.....