Я использую фреймворк Laravel и в моей форме есть редактор WYSIWYG.
Input::get('wysivyg')
Возвращает вывод HTML, например:
<p><strong>dsdsdd</strong></p> <p><em>dsdsd</em></p> <p> </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> </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.
text
, range
а также date
являются зарезервированные слова в SQL. Вы не можете использовать их в качестве имен столбцов в запросе, если не окружите их обратными чертами.
Других решений пока нет …