将tinymce中的格式化文本存储在数据库中


Storing formatted text from tinymce in database

我有一个tinymce文本区域,在加载页面时,我会在其中放入一些默认文本。此文本的格式为粗体和下划线。所有这些都很有效。然而,当我将此文本存储在MySQL数据库中时,我会得到以下错误:

将电子邮件添加到数据库时出错:您的SQL语法有错误;查看与MySQL服务器版本对应的手册在附近使用正确的语法。。。在5号线

以下是我如何在文本区域内创建此默认文本;

window.onload = function formatText() {
    tinyMCE.get("results").setContent("<b><u>RESULTS</b></u><br><br><br>");
    tinyMCE.get("upcoming_races").setContent("<b><u>UPCOMING EVENTS</b></u><br><br><br>");
    tinyMCE.get("thisweek").setContent("<b><u>THIS WEEK'S TRAINING</b></u><br><br><br>");
}

当我取出这段代码,只需手动输入文本(同时使用tinymce按钮格式化文本),所有内容都会完美地保存在数据库中。我不知道如何让这些文本既显示格式,又能够通过PHP/MMySQL调用保存。

有人知道怎么做吗?谢谢

编辑:这是相关的PHP代码。请注意(如前所述)如果我手动键入和格式化文本,此代码就可以正常工作。然而,当我使用javascript为我设置文本时,它失败了。

$sql = "INSERT INTO Emails
            (date, subject, greeting, results, upcoming, thisweek, signoff)
            VALUES 
            ('$today', '$subject', '$greeting', '$results', '$upcoming', 
            '$thisweek', '$signoff')";
$result = mysql_query($sql);

编辑2:这是$sql文本的回声。我觉得奇怪的是,所有的回车都必须来自javascript:

插入电子邮件(日期、主题、问候语、结果、即将发送、,本周,签字)数值("2013-07-23","测试","试验","结果

','即将举办的活动

','本周的训练

','测试签字')

我使用以下函数,因此您需要将mysql转换为mysqli。。。无论如何你都需要这样做,否则你的代码将无法与即将发布的版本一起使用。链接以帮助http://php.net/manual/en/mysqli.query.php

还请注意,这段代码是我在类中修改的,所以它可能有点偏离。。。我不使用全球等

function escapeString($string) {
    global $connection;
    // depreciated function
    if (version_compare(phpversion(),"4.3.0", "<")){
        return mysqli_escape_string($connection, $string);
    } else {
        return mysqli_real_escape_string($connection, $string);
    }
}

$sql = "INSERT INTO Emails
            (date, subject, greeting, results, upcoming, thisweek, signoff)
            VALUES 
            ('" . escapeString($today) . "', '" . escapeString($subject. "', '" . escapeString($greeting) . "', '" . escapeString($results) . "', '" . escapeString($upcoming) . "', 
            '" . escapeString($thisweek) . "', '" . escapeString($signoff) . "')";