Codeigniter更新时的多个参数

时间:2016-05-06 02:54:07

标签: codeigniter

我在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'

这听起来很奇怪,因为这段代码适用于我的其他功能。有什么想法吗?

3 个答案:

答案 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();