[英]Strange PHP Syntax Error
我收到错误消息您的SQL语法错误; 检查与您的MySQL服务器版本对应的手册以获取正确的语法,以在第1行的“ keys LIKE%dogs%ORDER BY rating DESC”附近使用
$query = mysql_query("SELECT * FROM listings WHERE keys LIKE %$q% ORDER BY rating DESC") or die(mysql_error());
我搜索了替换“ q”搜索变量的“ dogs”。 当我添加ORDER BY等级DESC时,发生此语法错误。 我有相同的代码行,减去了过去的代码,它工作正常。 我尝试在“列表”,“键”和“评分”周围添加单引号,但仍然无法正常工作。
我确定这是一个简单的解决方法,我只是想念它。
谢谢
不是php错误。 LIKE之后的字符串应加引号。
只是一个小小的评论,但涉及到一个问题:避免使用经典的MySQL扩展。 使用MySQL改进版本,或者最好使用PDO。
http://php.net/manual/zh/book.pdo.php
http://php.net/manual/zh/book.mysqli.php
不仅更安全,而且您将能够使用MySQL 5功能(例如,准备好的语句)。
“键”可能是保留关键字。 用反引号将其包围。
另外,就像@OZ_所说的那样, LIKE
之后的字符串必须用单引号引起来。 并转义$q
以避免SQL注入。
$query = mysql_query("SELECT * FROM listings WHERE `keys` LIKE '%" . mysql_real_escape_string($q) . "%' ORDER BY rating DESC") or die(mysql_error());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.