在 PHP 中,$_POST 会自动在引号前添加斜杠,那么为什么还要应用 mysql_real_escape_string() 呢?例如,当我在输入字段中输入 'rrr
时,当我回显它时得到 \'rrr
。
最佳答案
因为只有在您的 php 配置中启用了 MacigQuotes 时才会发生这种情况,据我所知,这在当今相当罕见。此外,mysql_real_escape_string 还转义了其他与 MySQL 相关的字符。
查看 http://php.net/manual/en/security.magicquotes.php有关魔术引号的更多信息。
正如你所看到的,这个指令已经有弃用警告,所以无论如何你应该检查你的服务器配置^^
编辑:要禁用魔术引号,请在您的 xampp 文件夹中搜索 php.ini,然后添加或更改(如果存在)以下指令:
; Magic quotes ; ; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = Off ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. magic_quotes_runtime = Off ; Use Sybase-style magic quotes (escape ' with '' instead of \'). magic_quotes_sybase = Off
关于php - 为什么要费心使用 mysql_real_escape_string() 因为 $_POST 会自动在引号前添加斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1747677/