利用使用者定義的變數多次綁定參數
在實作資料庫的搜尋功能時,通常涉及使用準備好的語句和綁定搜尋詞參數。但是,MySQL 限制在單一準備好的語句中重複使用命名參數。
替代解決方案
而不是訴諸使用多個參數(例如,:term1, : term2),考慮利用 MySQL 的使用者定義變數。這允許您將參數值儲存在資料庫本身內的臨時變數中。
實作
要實現此:
SET @term = :term;
$stmt = $dbh->prepare($sql); $stmt->bindValue(":term", "%$term%", PDO::PARAM_STR); $stmt->execute();
SELECT ... FROM table WHERE name LIKE @term OR number LIKE @term;
優點
此方法有幾個優點:
警告
警告唯一要注意的是執行附加查詢來設定使用者定義變數的開銷。然而,它的好處遠遠超過了這個小缺點。以上是使用者定義變數如何解決MySQL重複參數綁定限制?的詳細內容。更多資訊請關注PHP中文網其他相關文章!