我正在使用mysqli_real_escape_string的OOP方法转义字符串。我将输入的输入保存到会话变量中以确保它正确转义。它似乎正在逃避,但当我检查输入数据库的内容时,我看不到单引号和双引号之前的斜杠。
所以在浏览器中我回应:
Array
(
[formContent] => I\'m always here!
)
但在数据库中我看到:
I'm always here!
这是否意味着我的代码在某处出现了问题?谢谢!
答案 0 :(得分:5)
不,这很正常。 mysqli_real_escape_string
会自动为您解除单引号。
当你有字符串时,
I'm always here!
mysqli_real_escape_string
将其处理为
I\'m always here!
所以它将保存在数据库中。这就是它的工作原理。
答案 1 :(得分:0)
mysqli_real_escape_string
- 在SQL语句中使用字符串中的特殊字符转义,并考虑连接的当前字符集
它是什么让它逃脱单引号(在某种程度上从sql注入中保存)
hello 'world
mysqli_real_escape_string
将其处理为
hello \'world
您可以使用stripslashes
删除\