Как пропустить итерацию если команда вызывает ошибку PHP?
Объясняем для самых маленьких: В коде НЕ ДОЛЖНО быть ошибок синтаксиса.
Ошибки синтаксиса надо не "пропускать", а не допускать.

В данном случае ошибка возникает из-за абсолютно дебильного кода, который пытается выполнить недописанный запрос столько раз, сколько полей в таблице. 
А в исправленном коде - из-за того что переменные пихаются напрямую в запрос.

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

Остальные ответы это ад.
А потом мы ходим и удивляемся - почему об пэхапэшников все ноги вытирают.
Вот из-за таких ответов и вытирают
Утоните, какого уровня ошибка - PHP или БД (ошибка связи с БД, ошибка в запросе)? На что реагировать-то надо?