bindValue不逃避

问题描述:

我在php.net阅读评论:bindValue不逃避

虽然bindValue()逃逸引用它并没有逃脱“%”和“_”,因此使用LIKE时要小心。如果您没有自己转义参数,则充满%%%的恶意参数可以转储整个数据库。 PDO不提供任何其他的转义方法来处理它。

那么它真的不逃避%和_?什么可能是最好的解决方案呢?

正如评论所说,这只是LIKE查询的一个问题。

这取决于你的数据库如何逃避这些价值观。如果正常的反斜杠作品(如在MySQL),然后使用:

$like = addcslashes($like, "%_"); 

或者它可能是最好的偷懒,只是剥离这些元字符出来:

$like = strtr($like, "%_", " ");