mysqli真正的逃脱字符串

hey*_*ray 3 php mysqli

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

所以在浏览器中我回应:

Array
(
    [formContent] => I\'m always here!
)
Run Code Online (Sandbox Code Playgroud)

但在数据库中,我看到:

I'm always here!
Run Code Online (Sandbox Code Playgroud)

这是否意味着我的代码在某处出现了问题?谢谢!

Joh*_*Woo 5

不,这很正常.mysqli_real_escape_string自动逃避单引号给你.

当你有字符串,

I'm always here!
Run Code Online (Sandbox Code Playgroud)

mysqli_real_escape_string 将其处理为

I\'m always here!
Run Code Online (Sandbox Code Playgroud)

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