繁体   English   中英

奇怪的PHP语法错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM