我一直在尋找一些主題,但還沒有找到任何可行的工作 - 或者它可以,但我對PHP/MySQL很新,所以也許我我只是想念一些東西。帶有撇號的PHP查詢中的搜索條件
我有一個頁面,允許用戶鍵入一個項目的名稱在(MySQL)數據庫中查找它。然後它生成一個結果表並顯示這些結果,並將一些數據轉換爲鏈接。然後將鏈接的術語用作查詢來搜索數據庫的其他字段。
一切正常......除非其中一個搜索項包含撇號。顯然我想防止注射問題,但我也需要用撇號搜索。下面的代碼我有:
$query = mysql_real_escape_string($query);
$query = htmlspecialchars($query);
$queryentered = $query;
$query = strtolower($query);
而這裏的就是這樣的傳球到查詢的網址:
echo " from <a href='index.php?volume=".$results2['book']."' class='where'>"
.$results2['book']."</a>";
和查詢:
$raw_results = mysql_query("SELECT * FROM $database1 WHERE $wh LIKE '%$query%'
ORDER BY displayname") or die(mysql_error());
什麼我不編碼正確的?當我運行一個搜索時,它會顯示「找不到[搜索字詞]的結果」,我在那裏得到任何撇號的結果。
嗨@Lera,歡迎來到SO。 +1格式整齊,直接的問題。 :) – Ben
您需要打印出最終的SQL查詢字符串,然後查看該字符串以進行調試。 – mario
如果您剛剛開始使用PHP/MySQL,我強烈建議您查看mysqli *函數組,而不是! http://php.net/manual/en/book.mysqli.php – Geo