Ответ 1
У вас синтаксис неправильный; нет необходимости размещать период внутри строки с двумя кавычками. Вместо этого он должен быть больше похож на
$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
знак процента должен быть удвоен, чтобы в итоге появиться один раз в результате.