在PDO 中正確實現LIKE 查詢
嘗試在PDO 中執行LIKE 查詢時,確保正確的語法以檢索準確的結果非常重要。在提供的查詢中,問題在於 % 通配符的位置。
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 陣列中包含% 符號,則產生的查詢將如下所示:
SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'
但是,在提供的原始查詢中, % 符號包含在查詢本身:
$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'";
執行查詢時,準備好的語句會引用中的值已經引用的字串,導致不正確的查詢。透過將 % 符號移至 $params 數組,預期的查詢將被正確執行。
以上是PDO中使用LIKE時如何避免錯誤查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!