查询未在CI中的库文件中加载

时间:2014-06-09 12:04:47

标签: codeigniter

我正在尝试将模型用户转换为库文件并将其放在系统库中。因为我有多个codeigniter安装。

在我公共函数登录下面的第16行,它说

中的非对象上的成员函数query()
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class User {

private $user_id;
private $username;

public function __construct() {
  $CI =& get_instance();
  $CI->load->library('session');
  $CI->load->library('bcrypt');
  $CI->load->database();
}

public function login() {
// Line 16  $user_query = $this->db->query("SELECT * FROM " . $this->input->get('db_prefix') . "user WHERE username = '" . $this->db->escape($username) . "' AND (password = '" . $this->db->escape($password) . "') AND status = '1'");

    $result = $this->check_credentials($password);

    $this->user_id = $user_query->row['user_id'];
    $this->username = $user_query->row['username']; 

    $user_query = $this->db->get('user');

    if($user_query->num_rows == 1) {
        return true;
    } else {
        return false;
    }
}

public function check_credentials() {
    $user_query = $this->db->get('user');

    if ($user_query->num_rows == 1) {

    $result = $query->row_array();

    if ($this->bcrypt->check_password($password, $result['password'])) {
        //We're good
        return $result;
    } else {
        //Wrong password
        return array();
    }

 } else {

    return array();
    }
}

public function isLogged() {
    return $this->user_id;
}

public function getId() {
    return $this->user_id;
}

public function getUserName() {
    return $this->username;
}
}

1 个答案:

答案 0 :(得分:0)

在休息一下并考虑之后我再次尝试@Mehul Jethloja所说的

让它运转

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class User {

    private $user_id;
    private $username;

    public function __construct() {
        $this->CI =& get_instance();
      $this->CI->load->library('session');
      $this->CI->load->library('bcrypt');
      $this->CI->load->database();
   }

    public function login($username, $password) {
        $this->CI->db->where('username', $this->CI->input->post('username'), $username);
        $this->CI->db->where('password', $this->CI->input->post('password'), $password);

        $result = $this->check_credentials($password);

        $this->user_id = $user_query->row['user_id'];
        $this->username = $user_query->row['username']; 

        $user_query = $this->CI->db->get('user');

        if($user_query->num_rows == 1) {
            return true;
        } else {
            return false;
        }
    }

    public function check_credentials() {
        $user_query = $this->CI->db->get('user');

        if ($user_query->num_rows == 1) {

        $result = $query->row_array();

        if ($this->bcrypt->check_password($password, $result['password'])) {

            //We're good

            return $result;

        } else {

            //Wrong password

            return array();
        }

        } else {

                return array();

        }
    }

    public function isLogged() {
        return $this->user_id;
    }

    public function getId() {
        return $this->user_id;
    }

    public function getUserName() {
        return $this->username;
    }
}