我收到错误您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在第1行“密钥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”搜索变量。添加ORDER BY评级DESC时出现此语法错误。我有相同的代码行,减去过去的代码,它工作正常。我尝试在'listing''key'和'rating'周围添加单引号,但它仍然无效。
我确信这是一个简单的解决方案,我只是缺少。
由于
答案 0 :(得分:9)
这不是php错误。应该引用LIKE之后的字符串。
答案 1 :(得分:2)
只是一个小评论,但与问题有关:避免使用经典的MySQL扩展。使用MySQL改进版本,或者最好是PDO。
http://php.net/manual/en/book.pdo.php
http://php.net/manual/en/book.mysqli.php
不仅更安全,您还可以使用MySQL 5等功能,例如预备语句。
答案 2 :(得分:2)
“keys”可能是保留关键字。用反引号围绕它。
另外,就像@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());