mysql字符转义单引号

时间:2009-12-29 10:15:03

标签: php mysql

我正在将一些HTML插入MySQL数据库表中。但是当我把它拿回来时,许多角色都会受到损害。我注意到的两个具体案例是:

  1. 单引号转换为 ,
  2. 早先阅读class='content-section developer-support'的代码已转换为developer-support\="" class="\'content-section"
  3. 我明白这是一个逃避问题。在我将其推入数据库之前,我在字段上使用了mysql_real_escape_string。

    避免此问题的正确方法是什么?


    源:

        $query = sprintf("insert into events (title, content) values('%s', '%s')",
                mysql_real_escape_string($this->title, $conn),
                mysql_real_escape_string($this->content, $conn)
        );
    

    我正在谈论的文字已插入字段content

    我确实启用了magic_quotes。我会解决它。

2 个答案:

答案 0 :(得分:0)

我认为您在PHP配置中启用了magic_quotes,而且似乎正在尝试清理HTML。你需要展示你的来源。

答案 1 :(得分:0)

值得一提的是,您应该考虑使用MySQLi或PDO的预处理语句。实质上,您所显示的内容与执行预准备语句非常相似,并且无需在用户提供的每一位数据上使用mysql_real_escape_string。它还具有更安全的优势,可以提供更好的性能。

同样如上所述magic_quotes很可能是你的问题。