正如标题所说,使用bind_param()时是否必须转义用户输入,还是内部完成?
谢谢。
答案 0 :(得分:10)
不,在绑定参数时,您不需要转义数据以防止SQL注入。
这并不能免除你验证所说的数据。
绑定参数时,没有执行转义(内部或其他方式)。使用参数占位符准备SQL语句,并在执行时传递这些值。
数据库知道什么参数并相应地处理它们而不是SQL值插值。
答案 1 :(得分:6)
没有
引用此
http://mysql.lamphost.net/tech-resources/articles/4.1/prepared-statements.html
“通常在处理即席查询时,您需要这样做 处理从用户收到的数据时非常小心。 这需要使用能够避免所有必要麻烦的功能 字符,例如单引号,双引号和反斜杠 字符。在处理预准备语句时,这是不必要的。 数据的分离允许MySQL自动进入 帐户这些字符,他们不需要使用任何转义 特殊功能。“