在非对象上调用成员函数where()

时间:2013-05-21 21:25:11

标签: php codeigniter

我正在使用CodeIgniter开发一个网站。当我打开我的页面时,我收到此错误:

CodeIngiter Error

之前我没有遇到过这个问题,并知道我在每个使用数据库库的控制器中都有这个问题。

这是我得到错误的模型中的函数示例:

 public function login($pseudo,$password)
  {

    $this->db->where("pseudo",$pseudo);
    $this->db->where("password",$password);

    $query=$this->db->get("admin");
    if($query->num_rows()>0)
    {
      foreach($query->result() as $rows)
      {
        //add all data to session
        $newdata = array(
          'admin_id'  => $rows->id,
          'admin_pseudo'    => $rows->pseudo,
          'admin_fullname' => $rows->fullname,
          'admin_email' => $rows->email,
          'admin_logged_in'  => TRUE,
        );
      }
      $this->session->set_userdata($newdata);
      return true;
    }
    return false;
  }

第13行是:$this->db->where("pseudo",$pseudo);

这是控制器:

public function login()
  {
    $this->load->library('form_validation');
    $this->form_validation->set_rules('login', 'Pseudo', 'trim|required|min_length[4]|max_length[32]');
    $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[4]|max_length[32]');
    $pseudo=$this->input->post('login'); 
    $password=md5($this->input->post('password'));


    $result=$this->admin_model->login($pseudo,$password);



    if($this->form_validation->run() == FALSE)
    {
      $this->index();
    }
    else
    {
      if ($result) $this->dashboard();
      else        
        $this->index();
    }
  }

在自动加载文件中,我有:

$autoload['libraries'] = array('database','session');

2 个答案:

答案 0 :(得分:0)

$this->db显然不是一个对象。在调用login()

之前检查它是否已正确初始化

答案 1 :(得分:0)

  • 你真的可以连接到你的数据库吗?
  • 您是否修改了包含数据库连接参数的任何配置文件?
  • 您是否以任何方式修改了数据库的用户?
相关问题