Имате грешен синтаксис; няма нужда да се поставя точка в низ с двойни кавички. Вместо това трябва да е по-скоро като
$query = mysql_query("SELECT * FROM table WHERE the_number LIKE '$prefix%'");
Можете да потвърдите това, като разпечатате низа, за да видите, че се оказва идентичен с първия случай.
Разбира се, че не е добра идея просто да инжектирате променливи в низа на заявката по този начин поради опасността от SQL инжекция. Най-малкото трябва ръчно да избягвате съдържанието на променливата с mysql_real_escape_string
, което би го накарало да изглежда може би така:
$sql = sprintf("SELECT * FROM table WHERE the_number LIKE '%s%%'",
mysql_real_escape_string($prefix));
$query = mysql_query($sql);
Имайте предвид, че вътре в първия аргумент на sprintf
знакът за процент трябва да се удвои, за да се появи веднъж в резултата.