在PDO 中實作LIKE 查詢
當使用PDO 執行涉及LIKE 運算子的查詢時,了解如何正確建構LIKE 非常重要查詢和參數。考慮以下查詢:
"$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'";
$params = array($var1, $ var2 );"
錯誤:
查詢結果沒有傳回任何記錄,因為百分號(%) 包含在查詢本身中,而不是指定為參數。
解決方案:
要糾正此問題:
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%"); $stmt = $handle->prepare($query); $stmt->execute($params);
解釋:
通過在參數,我們確保在執行查詢時將它們正確地視為佔位符。這指示 PDO 用實際搜尋字詞取代相應的值,從而允許正確執行 LIKE 操作。
檢查原始程式碼產生的查詢時,您會注意到類似「SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'," 其中準備好的語句錯誤地引用了已引用字串中的值。透過遵循上述正確方法,您可以解決此問題並在 PDO 中成功執行 LIKE 查詢。
以上是如何在 PDO 中使用參數正確建構 LIKE 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!