在PDO 中實作LIKE 查詢
在PDO 中使用LIKE 查詢時,了解如何正確合併佔位符和綁定變數至關重要。本文解決了使用者在 PDO 中實作 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%");
透過將帶有百分號的變數值括在綁定變數中,產生的查詢可確保LIKE 子句將搜尋包含指定字的位址。如果不進行此調整,查詢將產生類似以下內容的內容:
SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'
此查詢將失敗,因為百分號嵌入在引號內,導致搜尋查找包含確切文字「foo」或「的地址” bar”,而不是包含這些術語的單字。
以上是如何在 PDO 中使用佔位符實現 LIKE 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!