【发布时间】:2010-11-13 06:33:29
【问题描述】:
我有一个数据库类,它在使用 mysqli_real_escape_string() 构建查询之前自动转义输入字符串。 但可能是在脚本中,一个字符串被转义,然后传递给再次转义它的数据库类。那可能是错的吗?会发生什么?
【问题讨论】:
-
回答你在 cmets 中问了 5 次的问题......想象一下,如果你有一个表单输入“O'Brien”。现在,如果这被转义了两次,那么您将获得 SQL 查询“... VALUES('O\\\'Brien') ...”。这会导致“O\'Brien”存储在您的数据库列中。如果您随后检索它并且不取消转义,您将向用户显示 O\'Brien,尽管他们想要 O'Brien 的值。