PDO 提供了一種使用綁定參數執行 SQL 查詢的安全方法,防止 SQL 注入漏洞。當綁定包含 % 等通配符的 LIKE 參數時,您可能會遇到混亂。
在下面的查詢中,我們嘗試使用 PDO 綁定變數 $partial%:
select wrd from tablename WHERE wrd LIKE '$partial%'
了解 PDO 如何處理此類綁定至關重要。正確的方法取決於您的特定要求。
是的,這是一個有效的選項:
select wrd from tablename WHERE wrd LIKE ':partial%'
其中:partial 結合到$partial="somet"。
您也可以使用此方法:
select wrd from tablename WHERE wrd LIKE ':partial'
其中:partial 綁定到$partial ="somet%"。
如果您願意,您可以在MySQL 查詢中執行字串連接本身:
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
如果您的部分單字包含%、_ 或等特殊字符,則需要在綁定參數之前手動轉義它們。以下程式碼示範了這一點:
$stmt= $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'"); $escaped= str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var); $stmt->bindParam(':term', $escaped);
以上是如何在 PDO 中安全地將 LIKE 參數與通配符綁定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!