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


How to store formatted text with HTML tags to database and then display it?

我正在使用Laravel框架,我的表单中有一个所见即所得的编辑器。

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')));

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

该错误与 HTML 无关。

textrangedate是SQL中的保留字。不能将它们用作查询中的列名,除非用反引号将它们括起来。