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

时间:2013-07-23 23:30:02

标签: php javascript mysql tinymce

我有一个tinymce textarea,我在页面加载时输入了一些默认文本。此文本格式为粗体和下划线。所有这一切都运作良好。但是,当我将此文本存储在MySQL数据库中时,我收到以下错误:

  

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

以下是我在textarea中创建此默认文本的方法;

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 / MySQL调用保存它。

有谁知道怎么做?谢谢!

编辑:这是相关的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','测试','测试','结果

     

','即将到来的活动

     

','本周的培训

     

','测试签收')

1 个答案:

答案 0 :(得分:2)

我使用下面的函数,所以你需要将你的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) . "')";