Masz niewłaściwą składnię; nie ma potrzeby umieszczania kropki wewnątrz łańcucha w cudzysłowie. Zamiast tego powinno być bardziej jak
$query = mysql_query("SELECT * FROM table WHERE the_number LIKE '$prefix%'");
Możesz to potwierdzić, drukując ciąg, aby zobaczyć, że okazuje się identyczny z pierwszym przypadkiem.
Oczywiście to niedobry pomysł po prostu wstrzyknąć zmienne do ciągu zapytania w ten sposób ze względu na niebezpieczeństwo wstrzyknięcia SQL. Przynajmniej powinieneś ręcznie zmienić zawartość zmiennej za pomocą mysql_real_escape_string
, co mogłoby wyglądać tak:
$sql = sprintf("SELECT * FROM table WHERE the_number LIKE '%s%%'",
mysql_real_escape_string($prefix));
$query = mysql_query($sql);
Zauważ, że wewnątrz pierwszego argumentu sprintf
znak procentu musi zostać podwojony, aby pojawił się raz w wyniku.