使用Codeigniter库时遇到问题

时间:2011-04-28 21:45:40

标签: php mysql codeigniter activerecord mysql-error-1054

我正在使用一个名为MY_Model.php的codeigniter库,该模型中有以下函数,

public function update($primary_value, $data, $skip_validation = FALSE)
{
    $valid = TRUE;
    if($skip_validation === FALSE)
    {
        $valid = $this->_run_validation($data);
    }

    if($valid)
    {
        $this->skip_validation = FALSE;
        return $this->db->where($this->primary_key, $primary_value)
            ->set($data)
            ->update($this->_table);
    }
    else
    {
        return FALSE;
    }
}

然后我用以下代码执行该函数,

$update = array('last_logged_in', date("Y-m-d H:i:s"));
            if($this->ci->users_model->update($query[0]['user_id'], array('last_logged_in', date("Y-m-d H:i:s"))))
            {
                $this->session->set_flashdata('success', 'You have successfully been logged in');
                switch($query['user_type_id'])
                {
                    case 1:
                        redirect('/candidate/dashboard');
                        break;

                    case 2:
                        redirect('/employer/dashboard');
                        break;

                    case 3:
                        redirect('/admin/dashboard');
                        break;
                }
            }

但是我收到以下错误,

  
    

发生数据库错误

  
     

错误号码:1054

     

'字段列表'中的未知列'0'

     

更新users SET 0 =   'last_logged_in',1 ='2011-04-28   21:06:51'在哪里user_id ='2'

2 个答案:

答案 0 :(得分:0)

尝试更改

array('last_logged_in', date("Y-m-d H:i:s"))

array('last_logged_in' => date("Y-m-d H:i:s"))

答案 1 :(得分:0)

我认为您需要将其更改为:

            if($this->ci->users_model->update($query[0]['user_id'], array('last_logged_in' => date("Y-m-d H:i:s"))))

请注意,数组现在是关联的 - 你在那里有一个逗号,使其编入索引。