mysql_real_escape_string()不应该在数据库中留下斜杠吗?

时间:2008-11-10 10:43:49

标签: php mysql escaping smarty

我使用smarty和mysql_real_escape_string()进行用户输入, 当我插入一些代码'",并在phpmyadmin中查找 它显示没有反斜杠。

当我从DB获得记录时,我也没有反斜杠。 但是,当我只是传递转义字符串而不插入数据库 它被反击了。

不应该添加斜线,插入它们然后我会 当我输出时将它们剥离? 或者我错过了什么?

1 个答案:

答案 0 :(得分:12)

你错过了它 - 用反斜杠转义是为了确保查询不会出错,例如:这样的事情肯定会破坏并可能导致SQL注入风险:

insert into table values ('whatever 'this' is')

并且表中不会保存任何内容,而是:

insert into table values ('whatever \'this\' is')

将在表中保存“此'为'的任何值。