Как используя Laravel и PHP 8 записывать текст в базу MaiaDB через модель избегая проблем со спецсимволами?

Есть необходимость хранить в базе разметку html. Для этого используется поле с типом данных longtext.

$model = new ModesDoc;

$model->length = count($info['content']);
$model->content = $info['content'];
$model->timestamp = time();

$model->save();

Иногда при попытке записать данные в базу, Laravel выдает ошибку

Illuminate\Database\QueryException

SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: '\xC8\xED\xF2\xE5\xF0\xED...' for column `mdbs`.`check_url`.`content` at row 1 (SQL: insert into `check_url` (`content_length`, `content`, `timestamp`) values (318670, ...

Судя по тому, что он ругается на Invalid datetime format я предположу, что где-то в тексте разметки есть служебные символы, которые оказывают влияние на итоговый sql-запрос. В мануале https://www.php.net/manual/ru/ref.pdo-mysql.php я не нашел нужных констант, да и функция mysql_real_escape_string уже давно исключена из PHP. Как можно такое пофиксить?


Ответы (0 шт):