这是我的模型 get_db.php 中的一个函数,用于更新名为' person' :
public function update1($data) {
$id = $data['fname'];
//echo $id;
$this->db->where('fname',$id);
$this->db->update('person',$data);
echo "updated successfully!";
}
相应的控制器方法是:
public function updateValues(){
$data['fname'] = $this->input->post('fname');
$data['lname'] = $this->input->post('lname');
$data['mobile'] = $this->input->post('mobile');
$this->load->model('get_db');
$this->get_db->update1($data);
}
数据成功从控制器传递到模型方法(我已通过回声测试)。但这部分模型方法:
$this->db->where('fname',$id);
无效。
但是如果我为where子句传递任何随机字符串,如下所示:
$this->db->where('fname','anystring');
然后它正在工作并更新我的表格'。基本上,$id
由于某种原因未正确传递。请帮助。
注意:fname
,lname
和mobile
是我的人员中的列名。
答案 0 :(得分:0)
Please try this
//this is controller code
public function updateValues(){
$data['fname'] = $this->input->post('fname');
$data['lname'] = $this->input->post('lname');
$data['mobile'] = $this->input->post('mobile');
$this->load->model('get_db');
$this->get_db->update1($data);
}
//model
public function update1($data) {
$fname = $data['fname'];
$this->db->like('fname',$fname);
$this->db->update('person',$data);
echo "updated successfully!";
}
答案 1 :(得分:0)
$id
应该从控制器传递给模块。
在控制器中,您必须将id作为条件数组传递给模型函数。您可以将记录ID作为参数传递给updateValues函数。或者从POST。
public function updateValues($id){
$data['fname'] = $this->input->post('fname');
$data['lname'] = $this->input->post('lname');
$data['mobile'] = $this->input->post('mobile');
$this->load->model('get_db');
$this->get_db->update1($data,array("id"=>$id));
}
模特:
public function update1($data,$condition) {
$id = $data['fname'];
//echo $id;
$this->db->where($condition);
$this->db->update('person',$data);
echo "updated successfully!";
}
答案 2 :(得分:-1)
我认为使用表格ID或手机号码(如果是唯一的)更新行的最佳解决方案....因为frist名称或姓氏可能重复。