PHP PDO 準備語句-- MySQL LIKE 查詢
PDO 準備語句提供了一個安全有效的方法來使用動態參數執行SQL查詢。使用 MySQL LIKE 查詢時,採用正確的語法至關重要。
問題:
開發人員在 PHP 中使用 PDO 執行 MySQL LIKE 查詢時面臨挑戰,儘管查詢在 MySQL 用戶端中正常運作。程式碼無法傳回結果,並且嘗試了各種語法變體均未成功。
答案:
程式碼中的錯誤語法位於準備和執行語句中。問題是不必要地使用雙引號和不正確的參數綁定。以下是修正後的程式碼:
$sql = 'SELECT hs.hs_pk, hs.hs_text, hs.hs_did, hd.hd_did, hd.hd_text, hv.hv_text, hc.hc_text FROM hs LEFT JOIN hd ON hs.hs_did = hd.hd_did LEFT JOIN hd ON hd.hd_vid = hv.hv_id LEFT JOIN hc ON hd.hd_pclass = hc.hc_id WHERE hs.hs_text LIKE :searchTerm LIMIT 25'; $prep = $dbh->prepare($sql); $ret = $prep->execute(array(':searchTerm' => '%'.$searchTerm.'%'));
說明:
準備好的語句透過將查詢傳送到資料庫而不嵌入任何參數值來運作。參數單獨發送,與資料庫引擎進行綁定。在執行語句中的參數值中加入雙引號是不正確的,因為如果需要,PDO 會自動將參數值括在引號中。
此外,LIKE 運算子需要搜尋字詞周圍的百分比以允許部分匹配。在錯誤的程式碼中,搜尋字詞錯誤地用雙引號而不是必要的百分號括起來。
透過修正這些語法錯誤,PDO 準備好的語句可用於成功執行 MySQL LIKE 查詢。
以上是如何在 PHP 中正確使用 PDO 準備語句進行 MySQL LIKE 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!