Объясняем для самых маленьких:
В коде НЕ ДОЛЖНО быть ошибок синтаксиса.
Ошибки синтаксиса надо не "пропускать", а
не допускать.
В данном случае ошибка возникает из-за абсолютно дебильного кода, который пытается выполнить недописанный запрос столько раз, сколько полей в таблице.
А в исправленном коде - из-за того что переменные пихаются напрямую в запрос.
Поскольку ты пока еще вообще не понимаешь, как работать с БД из пхп, то
никакой динамической сборки запроса. Только руками:
$sql = "INSERT INTO oc_product_description SET field1 = ?, field2=?, ...";
$stmt = $this->db->prepare($sql);
$stmt->execute(array_values($product['oc_product_description']));
Остальные ответы это ад.
А потом мы ходим и удивляемся - почему об пэхапэшников все ноги вытирают.
Вот из-за таких ответов и вытирают