在PDO 中使用LIKE 查詢
嘗試在PDO 中實現LIKE 查詢時,您可能會遇到類似於下面查詢中描述的問題:
$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'"; $params = array($var1, $var2); $stmt = $handle->prepare($query); $stmt->execute($params);
此查詢可能不會傳回任何結果,即使$var1 和$var2包含有效的搜尋字詞。錯誤在於錯誤包含 % 符號。
要在 PDO 中正確使用 LIKE,% 符號應包含在 $params 陣列中,而不是包含在查詢本身中。以下是修正後的程式碼:
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%"); $stmt = $handle->prepare($query); $stmt->execute($params);
透過將變數括在 $params 陣列中的 % 符號中,可以確保 % 字元被正確替換到查詢中。如果不進行此修改,PDO 準備語句會將 % 符號視為文字字串值的一部分,從而導致不正確的查詢。
以上是如何正確使用 PDO 參數的 LIKE 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!