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