Ну, я знаю, что этот пост античный, но вот мои 2 цента:
Я так не думаю:
if(!$this->descriptions->insert($new_description))
будет работать, потому что функция вставки из активной записи CI всегда возвращает TRUE (успешно или нет). Если вы используете режим отладки, CI остановится при ошибке и выдаст пользователю экранное сообщение, но функция вставки все равно вернет TRUE.
Итак, если вы хотите управлять транзакциями "вручную" с помощью CI, вам придется использовать что-то вроде этого:
...
$this->db->trans_begin();
$this->db->insert('FOO');
if ($this->db->trans_status() === FALSE){
$this->db->trans_rollback();
}else{
$this->db->trans_commit();
}
Надеюсь, это кому-нибудь поможет ... когда-нибудь .... где-то