我读过很多关于SQL注入的文章。但它不适用于以下代码:
$inputform= $_GET["password"];
$query = "INSERT INTO user(password) VALUES ('".mysql_real_escape_string($inputform)."')";
例如,我使用这个例子:
O'Conner
。当我提交它并在表中查找时,存在O'Connor
而不是O\'Conner
。谢谢
最佳答案
引号被转义,这样MySQL就不会将其解释为字符串分隔符。反斜杠不会存储在数据库中,也不应该存储在数据库中。你看到的是正确的、预期的和有记录的行为。
最好的解决方案是使用PDO和参数化查询。
关于php - 为什么我的mysql_real_escape_string不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3467344/