我在Codeigniter官方文档中复制此代码,但我不知道为什么会抛出错误
public function acceptChangeRequest($id,$data1,$accept) {
$data = array(
'status' => $accept,
'approve_by' => $data1,
);
$this->db->where('id', $id);
$this->db->update('change_request',$data);
//return true;
}
错误号码:1054
未知列'数组'在'字段列表'
更新change_request
设置status
=' Y',approve_by
=数组WHERE id
=' 22'
这听起来很奇怪,因为这段代码适用于我的其他功能。有什么想法吗?
答案 0 :(得分:0)
明确阅读文档 Read About Update Records In Codeigniter
这里是您的演示功能
public function updateBasic($data,$user_id){
$userData=array(
'marital_status'=>$data['marital_status'],
'country'=>$data['stateofresidence'],
'city'=>$data['city'],
'caste'=>$data['caste'],
'residential_status'=>$data['residencystatus']
);
$this->db->WHERE('user_id',$user_id)->update('basic_profile',$userData);
return true;
}
你必须检查Print_r();在你的情况下你的功能是什么$ data1来自数组来自你必须提取数组以更新记录
答案 1 :(得分:0)
在模型中使用此功能更新记录。
public function acceptChangeRequest($where, $table, $data){
$this->db->where($where);
$this->db->update($table, $data);
return $this->db->affected_rows() > 0;
}
在您的控制器中使用此代码。
$where = array('id'=>$id);
$data = array(
'status' => $accept,
'approve_by' => $data1,
);
$this->User_model->update($where,'table_name',$data);
答案 2 :(得分:0)
$data1
变量中包含哪些内容?我可以看到它是一个数组,这就是问题所在。
如果您的$data1
存储了表格行中的索引,那么这可能是您的解决方案:
public function acceptChangeRequest($id,$data1,$accept) {
$data1["status"] = $accept;
$this->db->where('id', $id);
$this->db->update('change_request', $data1);
return true;
}
但是,如果您的$data1
变量仅存储 approve_by 信息,则可能的解决方案是:
public function acceptChangeRequest($id,$data1,$accept) {
$data = array(
'status' => $accept,
'approve_by' => $data1["approve_by"]
);
$this->db->where('id', $id);
$this->db->update('change_request', $data);
return true;
}
首先,您需要知道您对$data1
的期望,而不是您可以继续前进到解决方案。
您可以在Controller的功能中看到$data1
变量:
print "<pre>";
print_r($data1);
print "<pre>";
die();