在MySQL PDO 查詢中使用bindParam 時更正LIKE 語法
在MySQL PDO 查詢中,將LIKE 與bindParam 一起使用可能會很容易棘手。此問題演示了嘗試匹配以特定字串開頭的用戶名時面臨的常見問題。
問題中提供的錯誤語法在$term 變數周圍使用內部單引號:
$term = "'$term%'";
要解決此問題,只需刪除內部單引號:
$term = "$term%";
使用bindParam時,PDO會自動處理字串參考。在 $term 變數中加入不必要的引號可能會導致不正確的 LIKE 匹配。
修正後的語句應如下所示:
$sql = "SELECT username FROM `user` WHERE username LIKE :term LIMIT 10"; $core = Connect::getInstance(); $stmt = $core->dbh->prepare($sql); $stmt->bindParam(':term', $term, PDO::PARAM_STR); $stmt->execute(); $data = $stmt->fetchAll();
這將正確配對以 $term 變數開頭的使用者名,例如「a」。
以上是為什麼在 MySQL PDO 查詢中使用“LIKE”時“bindParam”失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!