簡體   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