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.