无法通过Codeigniter中的数组更新数据

时间:2018-07-23 05:45:30

标签: php codeigniter

我无法通过Codeigniter(PHP)中的数组更新数据,

我想将列premium_id减少到0时将列premium_count或溢价设置为0

控制器功能:-

$premium_count = !empty($logged_user[0]->premium_count) ? $logged_user[0]->premium_count : '0';

        if($premium_count == '0') {
            $data = array(
                'premium_count' => '0',
                'premium_id' => '0',
                'premium' => '0'
            );          
        } else {
            $data = array(
                'premium_count' => $premium_count-1
            );
        }
 $this->admin_model->updateData('users', $data, $this->session->userdata('userid'));

模型功能(sql查询):-

public function updateData($table,$data,$id)
{
    $this->db->where('id',$id);
    $this->db->update($table,$data);
}

premium_count的值类似于1,2,3 ..时有效,但是当其减小到0时,则不会更新或将上面的列设置为0。

2 个答案:

答案 0 :(得分:0)

请尝试删除引号中的0。 我的意思是

    if($premium_count == '0') {
        $data = array(
            'premium_count' => '0',
            'premium_id' => '0',
            'premium' => '0'
        );        

    if($premium_count == 0) {
        $data = array(
            'premium_count' => 0,
            'premium_id' => 0,
            'premium' => 0
        );        

希望有帮助。

答案 1 :(得分:0)

将这部分替换为零而不是字符串

$premium_count = !empty($logged_user[0]->premium_count) ? $logged_user[0]->premium_count : 0;  // <- remove '' over zero

并像这样检查

    if($premium_count == 0) {   // <- remove '' over zero
       $data = array(
         'premium_count' => '0',
         'premium_id' => '0',
         'premium' => '0'
       );          
    } else {
        $data = array(
          'premium_count' => $premium_count-1
        );
    }