php - 为什么我的 mysql_real_escape_string 不起作用?

标签 php mysql

我已经阅读了很多关于 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/

相关文章:

php - Android 应用程序与 PHP 服务器通信

php - 无法通过 memcached 程序在服务器上保存数据

php - 替换Mysql中的两行

php - 如何在 Wordpress API Post 中包含 META 字段?

mysql - 如何更改 wordpress 搜索栏中的搜索操作?

MySQL 默认值与 MariaDB 默认值

php - 将php时间戳四舍五入到最接近的分钟

php - 在不丢失图形形状的情况下减少图形数据

PHP/MySQL 数据库图库删除

Mysql: "where in"但也需要重复