Mysql
 sql >> Database >  >> RDS >> Mysql

Come utilizzare la stringa PHP nella query MySQL LIKE?

Hai sbagliato la sintassi; non è necessario inserire un punto all'interno di una stringa tra virgolette. Invece, dovrebbe essere più simile a

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

Puoi confermarlo stampando la stringa per vedere che risulta identica al primo caso.

Ovviamente non è una buona idea per iniettare semplicemente variabili nella stringa di query in questo modo a causa del pericolo dell'iniezione SQL. Per lo meno dovresti eseguire manualmente l'escape del contenuto della variabile con mysql_real_escape_string , che forse lo farebbe assomigliare a questo:

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

Nota che all'interno del primo argomento di sprintf il segno di percentuale deve essere raddoppiato per apparire una volta nel risultato.