如何使用codeigniter中的会话更新数据

时间:2017-01-04 03:39:36

标签: codeigniter-3

这是我在codeigniter中的代码,但它没有在数据库中更新,我是初学者代码,我怎么能修复这个错误,或者我的代码有什么问题? 这是我的控制器:

function edit() {
    $role = $this->session->userdata('role');
    $this->form_validation->set_rules('firstname', 'firstname', 'required|xss_clean');
    $this->form_validation->set_rules('lastname', 'lastname', 'required|xss_clean');
    if ($this->form_validation->run() == FALSE) {
        //set page data
        $data['title'] = 'Update Profile';
       if($role!=''){
       $data['admin'] = $this->M_user->get($this->session->userdata('user_id'));
      }else{
      $data['admin'] = $this->M_administrator->getAdmin($this->session->userdata('id_admin'));
      }
        $data['sitename'] = $this->M_website->getName();
        $data['content'] = 'admin/myaccount/edit';

        //parse template
        $this->parser->parse('admin/template', $data);
    } else {
       if($role!=''){
        if ($this->M_user->updateStatus($_POST['user_id'])) {
             //SAVE ADMIN ACTION LOG
            //save_admin_action(array('module' => Constant::AM_ACCOUNT, 'action' => Constant::AL_EDIT, 'title' => $this->form_validation['username'], 'object_id' => $id));

            //redirect page
            $this->session->set_flashdata('saved', TRUE);
            redirect('admin/myaccount');
        }
       }else{           
        if ($this->M_administrator->updateStatus($_POST['id_admin'])) {
             //SAVE ADMIN ACTION LOG
            //save_admin_action(array('module' => Constant::AM_ACCOUNT, 'action' => Constant::AL_EDIT, 'title' => $this->form_validation['username'], 'object_id' => $id));

            //redirect page
            $this->session->set_flashdata('saved', TRUE);
            redirect('admin/myaccount');
        }
      }
    }
}

这是我的模特管理员:

function updateStatus($post, $id){
    $data = array(
                'firstname' => $post['firstname'],
                'lastname' => $post['lastname']
        );
    $this->db->where('id_admin', $id);
    if($this->db->update('admin', $data)){
        return TRUE;
    }else{
        return FALSE;   
    }
}

用户模型:

function updateStatus($post, $id){
    $data = array(
                'firstname' => $post['firstname'],
                'lastname' => $post['lastname']
        );
    $this->db->where('user_id', $id);
    if($this->db->update('user', $data)){
        return TRUE;
    }else{
        return FALSE;
    }
}

2 个答案:

答案 0 :(得分:1)

如果你没有在模型中获得该值,那么

将名字和姓氏传递给你的updatestatus模型函数,这样你就无法改变

使用$ this-> db-> last_query();打印查询获取查询输出并在此处发布您的查询

答案 1 :(得分:0)

将您的where子句更改为  $ this-> db-> where(' id_admin',$ post);