3

我正在使用 OOP 方法转义字符串mysqli_real_escape_string。我将输入的内容保存到会话变量中,以确保它正确转义。它似乎正确转义,但是当我检查输入数据库的内容时,我看不到单引号和双引号之前的斜杠。

所以在浏览器中我回显:

Array
(
    [formContent] => I\'m always here!
)

但在数据库中我看到:

I'm always here!

这是否意味着我的代码某处有问题?

4

2 回答 2

5

不,这很正常。mysqli_real_escape_string自动为您转义单引号。

当你有绳子时,

I'm always here!

mysqli_real_escape_string将其处理为

I\'m always here!

所以它将被保存在数据库中。这就是它的工作原理。

于 2012-12-12T06:34:00.210 回答
0

mysqli_real_escape_string— 转义字符串中的特殊字符以在 SQL 语句中使用,同时考虑连接的当前字符集

它是做什么的它转义单引号(在某种程度上从 sql 注入中保存)

hello 'world

mysqli_real_escape_string将其处理为

hello \'world

你可以stripslashes用来删除\

于 2012-12-12T06:36:08.917 回答