1

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

它可以很好地保存到正确的数据库中,但似乎没有添加 \'s。

4

2 回答 2

4

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

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

于 2012-08-30T20:16:56.903 回答
3

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

更多关于禁用magic_quoteshttp ://www.php.net/manual/en/security.magicquotes.disabling.php

于 2012-08-30T20:17:39.913 回答