我在php.net上读到一条评论:
--尽管
bindValue()转义引用--它不会转义"%“和"_",所以在使用LIKE时要小心。如果您不自己转义%%,则包含%的恶意参数可以转储整个数据库。PDO不提供任何其他转义方法来处理它。
那么它真的没有逃脱%和_?解决这个问题的最好办法是什么?
发布于 2011-04-03 02:55:38
正如评论所述,这实际上只是LIKE查询的一个问题。
这取决于您的数据库如何转义这些值。如果正常反斜杠转义工作(如在MySQL中),则使用:
$like = addcslashes($like, "%_");或者,最好是懒散地把这些元字符去掉:
$like = strtr($like, "%_", " ");https://stackoverflow.com/questions/5527197
复制相似问题