Ono sa cime se ti ovde susreces je semanticka greska, ne sintaksna. Drugim recima da tvoj code ima sintaksnu gresku tvoje transakcije se ne bi izvrsile i ti ne bi dobio to sto hoces, ali cak iako tvoj code nema sintaksnu gresku, vec semanticku, nije bilo promene u bazi i opet nisi dobio to sto oces i rezultat je slican sintaksnoj gresci kad se podvuce crta.
Zato tvoj treci primer i jeste najbolji, jer ti ustvari pitas bazu da li je bilo greske u samom izvrsavanju upita ili mozda nije bilo greske ali upit nista konkretno nije uradio.
Jos jedna stvar, ako radis sa mysql i u query za polje u bazi koje je tipa int, a ti joj posaljes string, mislim da ce mysql to da castuje u neki int broj, dok recimo postgre ce da vrati gresku, mada ovo moze i da varira od verzija baza.
Kôd:
$query3 = $this->db->where('id', 'tralala')->update($this->_dbTableNum, $dataOtherTablesStatus);