转义 MySQL 可转义字符
MySQL 包含一组被视为通配符的字符,能够匹配多个输入。这些字符包括 %(百分比)和 _(下划线)。虽然 mysql_real_escape_string() 旨在处理大多数字符的转义以包含在 SQL 查询中,但它并没有解决这些通配符。
为了完全转义用户输入并防止这些字符被解释为元字符,建议将 mysql_real_escape_string() 函数与 addcslashes() 函数结合使用。
但是,当转义字符以包含在 LIKE 语句中,必须采取不同的方法。在 LIKE 语句中,_ 和 % 不被视为通配符,而是文字字符。要按字面匹配这些字符,必须使用 ESCAPE 子句对它们进行转义。
例如,要匹配字面百分号,LIKE 语句应使用以下语法:
LIKE 'something\%' ESCAPE '\'
注使用反斜杠 () 作为 LIKE 转义字符和 SQL 字符串文字的转义字符。这允许在 LIKE 语句中按字面解释百分号 (%)。
使用 PHP 准备好的语句时,会自动处理转义,无需手动转义。但是,如果准备好的语句不可用,则 mysql_real_escape_string() 和 addcslashes() 的组合可以有效保护用户输入免受潜在的 SQL 注入攻击。
以上是如何在查询和LIKE语句中正确转义MySQL通配符?的详细内容。更多信息请关注PHP中文网其他相关文章!