Dai un'occhiata a mysql_affected_rows()
Dovrebbe dirti se qualcosa è stato effettivamente aggiornato invece che nulla è stato aggiornato con successo con conseguente ritorno di true.
php.net dice:
Puoi utilizzare quanto segue per ottenere i risultati desiderati:
if($this->db->affected_rows() >= 0){ }