Máte chybnou syntaxi; není potřeba vkládat tečku do řetězce s dvojitými uvozovkami. Místo toho by to mělo být více jako
$query = mysql_query("SELECT * FROM table WHERE the_number LIKE '$prefix%'");
Můžete to potvrdit vytištěním řetězce, abyste viděli, že je identický s prvním případem.
Samozřejmě to není dobrý nápad jednoduše vložit proměnné do řetězce dotazu, jako je tento, kvůli nebezpečí vložení SQL. Přinejmenším byste měli ručně escapovat obsah proměnné pomocí mysql_real_escape_string
, což by vypadalo možná takto:
$sql = sprintf("SELECT * FROM table WHERE the_number LIKE '%s%%'",
mysql_real_escape_string($prefix));
$query = mysql_query($sql);
Všimněte si, že uvnitř prvního argumentu sprintf
znak procenta je třeba zdvojnásobit, aby se ve výsledku objevil jednou.