在 PDO 驅動的 SQL 查詢中,經常需要綁定包含 % 通配符的 LIKE 值。綁定此類值可確保防止 SQL 注入。但是,這樣做的語法可能會令人困惑。
考慮查詢:
select wrd from tablename WHERE wrd LIKE '$partial%'
在這裡,您想要使用 PDO 結合變數 $partial。當決定如何綁定 % 字元時,就會出現困境。
選項 1:
select wrd from tablename WHERE wrd LIKE ':partial%'
綁定 :partial to $部分=「somet」。
選項2:
select wrd from tablename WHERE wrd LIKE ':partial'
綁定 :partial 到 $partial="somet%"。
選項3(替代):
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
使用MySQL CONCAT 執行字串連接function.
如果搜尋的部分單字包含%或下劃線字符,則需要特殊處理。解決方案涉及在 PDO 語句中使用 ESCAPE 子句:
$stmt = $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'"); $escaped = str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var); $stmt->bindParam(':term', $escaped);
此技術可確保在 LIKE 表達式中正確解釋特殊字元。
以上是如何在 PDO 中將 LIKE 值與 % 字元綁定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!