我使用smarty和mysql_real_escape_string()进行用户输入,
当我用’或’插入一些代码,并在phpmyadmin中查找
它显示没有反斜杠.
当我从DB获得记录时,我也没有反斜杠.
但是,当我只是传递转义字符串而不插入数据库
它被反击了.
不应该添加斜线,插入它们然后我会
当我输出时将它们剥离?
或者我错过了什么?
解决方法:
你错过了它 – 用反斜杠转义是为了确保查询不会出错,例如:这样的事情肯定会破坏并可能导致SQL注入风险:
insert into table values ('whatever 'this' is')
并且没有任何东西会被保存在表格中,而这个:
insert into table values ('whatever \'this\' is')
将在表格中保存“此’为’的任何值”.