PHP PDO 準備語句-- MySQL LIKE 查詢
在PHP 中使用PDO 準備語句時,使用MySQL 驅動程式查詢可能實現具有挑戰性。本文將探討所需的語法並提供解決方案來幫助開發人員解決他們可能遇到的任何問題。
問題表述
開發人員正在嘗試執行搜尋使用 PDO 的 MySQL 驅動程式進行查詢。該查詢在直接透過 MySQL 用戶端執行時運作正常,但在使用 PHP 執行時無法傳回任何結果。
MySQL LIKE 查詢的 PDO 準備語句語法
與字串替換不同,PHP PDO 中的準備語句將資料與查詢分開傳輸。因此,將值綁定到 LIKE 語句時應避免使用雙引號或單引號。在 PHP PDO 中將值綁定到 LIKE語句的正確語法如下:
$searchTerm = '%value%'; $prep = $dbh->prepare($sql); $ret = $prep->execute(array(':searchTerm' => $searchTerm));
不正確的嘗試
開發人員嘗試的以下語法不正確且不會產生所需的結果:
$searchTerm = '%value%'; $prep = $dbh->prepare($sql); $ret = $prep->execute(array(':searchTerm' => '"%' . $searchTerm . '%"', '1');
$searchTerm = '%value%'; $prep = $dbh->prepare($sql); $ret = $prep->execute(array(':searchTerm' => $searchTerm));
解決方案
要解決此問題,請使用以下程式碼:
$searchTerm = '%value%'; $prep = $dbh->prepare($sql); $ret = $prep->execute(array(':searchTerm' => $searchTerm));
說明
說明PDO中的預備語句並不簡單地執行字串替換。相反,它們與查詢分開處理資料。只有當將值嵌入到查詢本身時才需要引號。透過省略準備好的語句綁定中的引號,PDO 能夠正確地將 '%value%' 字串傳輸到資料庫以用於 LIKE 比較。以上是如何在 PHP 中正確使用 PDO 準備語句和 MySQL LIKE 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!