Php 除了select查询外,在insert或update查询中是否真的需要mysql\u real\u escape\u字符串?

Php 除了select查询外,在insert或update查询中是否真的需要mysql\u real\u escape\u字符串?,php,mysql,Php,Mysql,mysql\u real\u escape\u string()被用作从数据库中获取数据时防止mysql注入的安全措施。但是在insert或update语句的情况下,它真的有必要吗?如果是,原因是什么?我认为你对mysql\u real\u escape\u string()的理解是有缺陷的 任何时候在SQL查询中插入用户输入时,都需要转义字符串。所以,是的,当运行insert和update语句时,您将完全转义 例如,当攻击方将SQL查询插入注册表时,会执行SQL注入攻击(mysql\u rea

mysql\u real\u escape\u string()
被用作从数据库中获取数据时防止mysql注入的安全措施。但是在insert或update语句的情况下,它真的有必要吗?如果是,原因是什么?

我认为你对mysql\u real\u escape\u string()的理解是有缺陷的

任何时候在SQL查询中插入用户输入时,都需要转义字符串。所以,是的,当运行insert和update语句时,您将完全转义

例如,当攻击方将SQL查询插入注册表时,会执行SQL注入攻击(mysql\u real\u escape\u string()可以帮助防止这种攻击)。
注册表中的字符串很可能会被插入SQL数据库。

是的,插入和更新查询同样容易受到SQL注入的攻击。
不过建议使用PDO。

当然,您可以对插入/更新进行转义。。。。您是否认为如果在插入/更新中使用包含“John O'Brien”的名称字段,则不需要转义来处理
?。。。。当然,如果你生活在21世纪,你无论如何都会使用预先准备好的语句/绑定变量,而这个问题将是无关紧要的,它不是完美的安全解决方案。此外,MySQL扩展已被弃用。使用准备好的语句代替MySQLi或PDO。关于您问题的答案,每当您根据用户输入查询或更新数据库时,都应该对安全输入进行清理。