我已经阅读了很多关于 SQL 注入(inject)的文章。但它不适用于此代码:
$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/