Ошибка возникает, когда Вы пытаетесь вставить данные, которые не ожидаются в столбце.
Если Вы проверили и все должно быть нормально, но не работает то можно попробовать:
Изменить кодировку данных, которые Вы хотите вставить в базу:
$encoding = mb_detect_encoding($html);
if ($encoding !== 'UTF-8') {
$html = mb_convert_encoding($html, 'UTF-8', $encoding);
echo 'changed the encoding' . PHP_EOL;
}
Если не помогло, то в самом запросе нужно выполнить CAST :
UPDATE `table` SET `html` = CAST(? AS BINARY) WHERE `id` = ?
Приводить к типу, который Вам подходит.