仅更新发布的列

时间:2018-12-06 06:32:26

标签: php codeigniter

我正在使用CodeIgniter中的rest API 我正在使用更新API,因此我只想更新通过邮递员发送的那些列/字段, 例如,如果我只发送了first_namelast_name,则应该仅更新这些列,而不是所有列, 但是当前代码更新了所有列,这是我的代码错了吗?

    public function update_userrecords()
    {

    $add_data['user_id'] = ($this->input->post('user_id') && !empty($this->input->post('user_id'))) ? $this->input->post('user_id') : NULL;

    $add_data['first_name'] = ($this->input->post('first_name') && !empty($this->input->post('first_name'))) ? $this->input->post('first_name') : NULL;

    $add_data['last_name'] = ($this->input->post('last_name') && !empty($this->input->post('last_name'))) ? $this->input->post('last_name') : NULL;

    $add_data['password'] = ($this->input->post('password') && !empty($this->input->post('password'))) ? $this->input->post('password') : NULL;


    $t=time();

    $data = array(
    'first_name'=>$add_data['first_name'],
    'last_name'=>$add_data['last_name'],
    'password'=>md5($add_data['password']),
    'updated_on'=>$t,
    );

    $this->db->where('id',$add_data['user_id']);
    $this->db->update('users', $data);

    }

1 个答案:

答案 0 :(得分:0)

您可以使用这种方式

设置新数组中的输入字段并更新该数组。我在$insert_data中添加了一个字段。您可以添加任意数量的内容。

public function update_userrecords()
 {
     $add_data['user_id'] = ($this->input->post('user_id') && !empty($this->input->post('user_id'))) ? $this->input->post('user_id') : NULL;

     $insert_data = [];



    if($this->input->post('first_name') && !empty($this->input->post('first_name'))) {
        $insert_data['first_name'] = $this->input->post('user_id');
    }


    $t=time();


    $this->db->where('id',$add_data['user_id']);
    $this->db->update('users', $insert_data);

    }