Я считаю, что это где ваша проблема
$this->db->where('id',$id);
переменная $id
не определена в вашей функции модели, поэтому, когда вы пытаетесь сделать $this->db->where('id',$id);
$ id, это не переменная, следовательно, ничего не находит ... следовательно, не обновляется.
если $id
является частью URI, сделайте что-то вроде:
$id = $this->uri->segment(3) //or whatever the segment is going to be