Как узнать, была ли транзакция ЛОЖНОЙ или произошло что-то еще (заблокированная таблица)?
$this->db->trans_start();
$this->db->where('id', $id)
->limit(1);
$q = $this->db->delete('table');
$this->db->trans_complete();
return $this->db->trans_status() ? TRUE : FALSE;
Например, транзакция может завершиться неудачей из-за ограничения внешнего ключа. Если это так, я бы запустил другой запрос. В любом другом случае я хочу повторить исходный запрос.