首页 文章

数据未插入codeigniter

提问于
浏览
0

我将尝试使用Codeigniter中的会话插入并更新数据,但数据未插入数据库,甚至其打印保存成功 . 这是我的控制器:

public function save($user_id)
   {
   $this->load->model('Users');
   $code=$this->input->post('code');
   $name=$this->input->post('name');
   $address=$this->input->post('address');

  $user_data= array(
    'code' =>$code,
   'name'=>$name,
 'address'=>$address,
 'active'=>1
    );
        if($this->Users->save($user_data,$user_id))
        {
            $this->session->set_flashdata('msg',"save sucesss");
        }else {
                $this->session->set_flashdata('msg',"not save");
        }
        redirect('home');
}

这是我的模特:

public function save($data,$id)
 {
 if (id=='') {
  // code...
  $this->db->insert('user',$data);
  return true;
}else
{
  $this->db->where('id',$id)
  ->update('user',$data);
  return true;
}
return false;
  }

如果我在模型中删除了数据插入!

3 回答

  • 2

    无论数据库操作的结果如何,模型总是返回true . 您应该使用 insert()update() 的返回值,以便"message"报告实际发生的情况 .

    请注意, save 的参数具有默认值 . 现在,您可以不带参数调用保存URL,它将自动执行插入操作 .

    public function save($user_id = NULL)
    {
        $this->load->model('users');
        $user_data = array(
            'code' => $this->input->post('code'),
            'name' => $this->input->post('name'),
            'address' => $this->input->post('address'),
            'active' => 1
        );
    
        if($this->Users->save($user_data, $user_id))
        {
            $msg = "save sucesss";
        }
        else
        {
            $msg = "not save";
        }
    
        $this->session->set_flashdata('msg', $msg);
        redirect('home');
    }
    
    public function save($data, $id)
    {
        if(empty($id))
        {
            // code...
            // insert returns TRUE on success, FALSE on failure
            return $this->db->insert('user', $data);
        }
    
        // update() accepts a third argument, a "where" array
        // and returns TRUE on success, FALSE on failure
        return $this->db->update('user', $data, array('id' => $id));
    }
    

    现在有一份关于数据库操作的准确报告 .

  • 0

    第一次检查是数据进入 save controller or not 如果它没有得到数据然后修复它 . 如果然后将其以正确的格式传递给模型,它肯定会插入数据库中 .

    使用以下打印数据

    echo $data;
    var_dump($data);
    print($data);
    print_r($data);
    
  • 1

    首先要重命名模型调用,例如:

    $this->load->model('users');
    

    并使用它来调用您的方法:

    $this->users->save($user_data,$user_id)
    

    你的模型应该是这样的:

    public function save($data, $id) {
        if ($id) {
            $this->db->where('id', $id)
                    ->update('user', $data);
            return true;
        }
        $this->db->insert('user', $data);
        return true;
    }
    

    如果你想在下一个请求中使用你的flashdata,请使用:

    $this->session->keep_flashdata('item');
    $this->session->keep_flashdata(array('item1', 'item2', 'item3'));
    

    因为flashdata仅用于下一个请求:

    CodeIgniter支持“flashdata”或仅可用于下一个请求的会话数据,然后自动清除 .

相关问题