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中文网其他相关文章!