首頁 > 資料庫 > mysql教程 > 如何在 PHP 中正確使用 PDO 準備語句進行 MySQL LIKE 查詢?

如何在 PHP 中正確使用 PDO 準備語句進行 MySQL LIKE 查詢?

Mary-Kate Olsen
發布: 2024-12-09 19:50:16
原創
421 人瀏覽過

How to Correctly Use PDO Prepared Statements for MySQL LIKE Queries in PHP?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板