mysql_real_escape在本地工作但不是远程工作

时间:2012-08-30 20:15:22

标签: php mysql mysql-real-escape-string

在我的本地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']);

它可以很好地保存到正确的数据库,什么不是,但似乎没有添加\。

2 个答案:

答案 0 :(得分:4)

这不是m_r_e_s正在做的,而是magic_quotes
您的本地计算机已启用它们。你的遥控器没有。你应该在本地禁用它们。

此外,您真的应该开始使用mysqliPDO

答案 1 :(得分:3)

可能在您的本地服务器上启用了

magic_quotes。你需要禁用它们。

有关停用magic_quotes的更多信息:http://www.php.net/manual/en/security.magicquotes.disabling.php