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

Fra*_*isc 6 php mysqli sqlbindparameter

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

谢谢.

Phi*_*hil 10

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

这并不能免除您验证所述数据的麻烦.

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

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


Mob*_*Mob 6

没有.

引用这个

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

"通常在处理即席查询时,在处理从用户收到的数据时需要非常小心.这需要使用能够逃避所有必要的故障字符的函数,例如单引号,双引号和反斜杠字符.在处理预准备语句时这是不必要的. 数据的分离允许MySQL自动考虑这些字符,并且不需要使用任何特殊功能进行转义."