mysql_real_eescape可以在本地工作,但不能在远程工作


mysql_real_escape works locally but not remote

在本地MAMP设置中使用mysql_real_sescape_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']);

它可以很好地保存到正确的数据库中,而不是添加''。

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

此外,您真的应该开始使用mysqli或PDO。

magic_quotes可能已在本地服务器上启用。你需要禁用它们。

有关禁用magic_quotes的详细信息:http://www.php.net/manual/en/security.magicquotes.disabling.php

相关文章: