在我的本地MAMP设置上使用mysql_real_escape_string时,它可以正常工作。例如,当我在文本字段中输入“test”时,它显示为“test”。
当我将其发布到远程服务器时,它似乎没有转义字符串。 “test”在数据库中显示为“test”。
我已经确定在转义之前已打开连接。
示例代码:
global $db,$db_table_prefix;
mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$title = mysql_real_escape_string($_POST['title']);
$content = mysql_real_escape_string($_POST['content']);
它可以很好地保存到正确的数据库,什么不是,但似乎没有添加\。
答案 0 :(得分:4)
这不是m_r_e_s正在做的,而是magic_quotes。
您的本地计算机已启用它们。你的遥控器没有。你应该在本地禁用它们。
答案 1 :(得分:3)
magic_quotes
。你需要禁用它们。
有关停用magic_quotes
的更多信息:http://www.php.net/manual/en/security.magicquotes.disabling.php