sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo usar la cadena PHP en la consulta mySQL LIKE?

Tienes la sintaxis incorrecta; no es necesario colocar un punto dentro de una cadena entre comillas dobles. En cambio, debería ser más como

$query = mysql_query("SELECT * FROM table WHERE the_number LIKE '$prefix%'");

Puede confirmar esto imprimiendo la cadena para ver que resulta idéntica al primer caso.

Por supuesto que no es una buena idea para simplemente inyectar variables en la cadena de consulta de esta manera debido al peligro de la inyección SQL. Como mínimo, debe escapar manualmente el contenido de la variable con mysql_real_escape_string , lo que haría que se viera tal vez así:

$sql = sprintf("SELECT * FROM table WHERE the_number LIKE '%s%%'",
               mysql_real_escape_string($prefix));
$query = mysql_query($sql);

Tenga en cuenta que dentro del primer argumento de sprintf el signo de porcentaje debe duplicarse para que aparezca una vez en el resultado.