Eche un vistazo a mysql_affected_rows()
Debería decirle si algo se actualizó realmente en lugar de si nada se actualizó con éxito, lo que resulta en un retorno de verdadero.
php.net dice:
Puede usar lo siguiente para lograr los resultados deseados:
if($this->db->affected_rows() >= 0){ }