首页 > 解决方案 > 数据未插入 codeigniter

问题描述

我将尝试使用 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;
  }

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

标签: phpdatabasecodeignitersql-insert

解决方案


无论数据库操作的结果如何,模型始终返回 true。您应该使用“消息”中的返回值来insert()报告update()实际发生的情况。

请注意,参数 tosave具有默认值。现在您可以不带参数调用保存 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));
}

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


推荐阅读