如何将带有HTML标签的格式化文本存储到数据库然后显示它?

时间:2014-12-02 12:43:44

标签: php database laravel wysiwyg text-formatting

我使用的是Laravel框架,我的表格中有一个WYSIWYG编辑器。

Input::get('wysivyg') 

返回HTML输出,例如:

<p><strong>dsdsdd</strong></p> <p><em>dsdsd</em></p> <p>&nbsp;</p>

所以我收到了这个错误:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'range, investor, designer, contractor, area, date) VALUES (?, ?, ?, ?, ?, ?, ?, ' at line 1 (SQL: INSERT INTO projects (name, city, category, text, range, investor, designer, contractor, area, date) VALUES (sssa, sasas, garden, <p><strong>dsdsdd</strong></p> <p><em>dsdsd</em></p> <p>&nbsp;</p> , , , sasaasas, , , ))

这是返回错误的行:

DB::insert('INSERT INTO projects (name, city, category, text, range, investor, designer, contractor, area, date) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', 
    array(Input::get('name'), Input::get('city'), Input::get('category'), Input::get('wysiwyg'), Input::get('range'), Input::get('investor'), Input::get('designer'),
          Input::get('contractor'), Input::get('area'), Input::get('date')));

如何将格式化文本存储到数据库?

1 个答案:

答案 0 :(得分:1)

该错误与HTML无关。

SQL中的

textrangedatereserved words。您不能在查询中将它们用作列名,除非用反引号括起来。