为什么我的mysql_real_escape_string不起作用?

php*_*php 2 php mysql

我读过很多关于SQL注入的内容.但它不适用于此代码:

$inputform= $_GET["password"];
$query = "INSERT INTO user(password) VALUES ('".mysql_real_escape_string($inputform)."')";  
Run Code Online (Sandbox Code Playgroud)

例如,我使用这个例子:O'Conner.当我提交它并查看我的表时,有O'Connor没有O\'Conner.

谢谢

tda*_*ers 7

报价被转义,因此MySQL不会将其解释为字符串分隔符.反斜杠不会存储在数据库中,也不应该存储.您所看到的是正确的,预期的和记录在案的行为.

BTW的最佳解决方案是使用PDO和参数化查询.