插入预准备语句时是否需要转义字符?准备好的语句是否为我逃脱了代码?
答案 0 :(得分:1)
更容易询问SO社区而不是使用Google ......
转义和SQL注入
绑定变量与查询分开发送到服务器,因此不会干扰它。在解析语句模板之后,服务器直接在执行点使用这些值。绑定参数不需要进行转义,因为它们永远不会直接替换为查询字符串。必须向服务器提供绑定变量类型的提示,以创建适当的转换。有关更多信息,请参阅mysqli_stmt_bind_param()函数。
这种分离有时被认为是防止SQL注入的唯一安全功能,但如果所有值都正确格式化,则可以使用非预处理语句实现相同程度的安全性。应该注意的是,正确的格式化与转义不同,并且涉及比简单转义更多的逻辑。因此,准备好的语句对于这个数据库安全元素来说只是一种更方便,更不容易出错的方法。
...假设您当然 mysqli