在MySQLi上使用bind_param()时,是否需要转义数据以防止SQL注入?

时间:2011-09-13 23:04:57

标签: php mysqli sqlbindparameter

正如标题所说,使用bind_param()时是否必须转义用户输入,还是内部完成?

谢谢。

2 个答案:

答案 0 :(得分:10)

不,在绑定参数时,您不需要转义数据以防止SQL注入。

这并不能免除你验证所说的数据。

绑定参数时,没有执行转义(内部或其他方式)。使用参数占位符准备SQL语句,并在执行时传递这些值。

数据库知道什么参数并相应地处理它们而不是SQL值插值。

答案 1 :(得分:6)

没有

引用此

http://mysql.lamphost.net/tech-resources/articles/4.1/prepared-statements.html

  

“通常在处理即席查询时,您需要这样做   处理从用户收到的数据时非常小心。   这需要使用能够避免所有必要麻烦的功能   字符,例如单引号,双引号和反斜杠   字符。在处理预准备语句时,这是不必要的。   数据的分离允许MySQL自动进入   帐户这些字符,他们不需要使用任何转义   特殊功能。“