在PDO中使用LIKE和bindParam匹配以字元開頭的使用者名稱
在PDO中使用bindParam進行資料庫查詢時,您可能會進行查詢會遇到這樣的情況:需要利用LIKE 運算子來搜尋資料的部分匹配。具體來說,您可能想要檢索以特定字元開頭的使用者名,在本例中表示為“a”。
要正確使用 LIKE 和 bindParam 實現此目的,請避免使用內部單引號將 bindParam 佔位符括起來。正確的語法是:
$term = "a%";
程式碼在嘗試執行 a%' 作為通配符條件而不是 a% 時出現錯誤。
請記住,bindParam 確保所有字串值都是傳遞給 SQL 語句時適當引用。因此,不需要將佔位符括在引號中,並且會導致不正確的匹配。
更正後的查詢應如下所示:
$term = "a%"; $sql = "SELECT username FROM `user` WHERE username LIKE :term LIMIT 10"; $stmt = $core->dbh->prepare($sql); $stmt->bindParam(':term', $term, PDO::PARAM_STR); $stmt->execute(); $data = $stmt->fetchAll();
此程式碼將成功檢索以透過在 bindParam 用法中正確應用 LIKE 運算子來識別字元「a」。
以上是如何在PDO中正確使用LIKE和bindParam來匹配以特定字元開頭的使用者名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!