Bạn sai cú pháp; không cần phải đặt dấu chấm bên trong chuỗi có dấu ngoặc kép. Thay vào đó, nó sẽ giống hơn
$query = mysql_query("SELECT * FROM table WHERE the_number LIKE '$prefix%'");
Bạn có thể xác nhận điều này bằng cách in ra chuỗi để thấy rằng nó giống hệt với trường hợp đầu tiên.
Tất nhiên đó không phải là một ý kiến hay chỉ cần đưa các biến vào chuỗi truy vấn như thế này vì sự nguy hiểm của SQL injection. Ít nhất bạn nên thoát nội dung của biến theo cách thủ công bằng mysql_real_escape_string
, có lẽ sẽ làm cho nó trông giống như thế này:
$sql = sprintf("SELECT * FROM table WHERE the_number LIKE '%s%%'",
mysql_real_escape_string($prefix));
$query = mysql_query($sql);
Lưu ý rằng bên trong đối số đầu tiên của sprintf
dấu phần trăm cần được nhân đôi để cuối cùng xuất hiện một lần trong kết quả.