Php 致命错误:对非对象codeigniter$query调用成员函数where()->;num_rows()=1)
可能重复:Php 致命错误:对非对象codeigniter$query调用成员函数where()->;num_rows()=1),php,mysql,database,codeigniter,Php,Mysql,Database,Codeigniter,可能重复: 我是codeigniter的新手,有一些问题 错误消息:致命错误:在C:\xampp\htdocs\moi\CI\application\models\model_users.php第12行的非对象上调用成员函数where() 我的模型: class Model_users extends CI_Model { function __construct(){ parent::__construct(); } public function can_log_in() {
我是codeigniter的新手,有一些问题
错误消息:致命错误:在C:\xampp\htdocs\moi\CI\application\models\model_users.php第12行的非对象上调用成员函数where() 我的模型:
class Model_users extends CI_Model {
function __construct(){
parent::__construct();
}
public function can_log_in() {
$this->db->where('email', $this->input->post('email'));
$this->db->where('pass', md5($this->input->post('password')));
$query = $this->db->get('users');
if ($query->num_rows()==1) {
return TRUE;
} else {
return FALSE;
}
我的控制器:
class Main extends CI_Controller {
public function index() {
$this->login();
}
//Auslagern der Funktionen
public function login() {
$this->load->view('login');
}
public function login_validation() {
$this->load->library('form_validation');
$this->form_validation->set_rules('email', 'email', 'required|valid_email|xss_clean|callback_username_check');
$this->form_validation->set_rules('password', 'password', 'required|md5');
if ($this->form_validation->run()) {
redirect('main/members');
} else {
$this->load->view('login');
}
}
public function username_check() {
$this->load->library('form_validation');
$this->load->model('model_users');
if ($this->model_users->can_log_in()) {
return TRUE;
} else {
$this->form_validation->set_message('username_check', 'incorect User or Passwort.');
return FALSE;
}
}
}
请寻求帮助您的数据库是否处于自动加载状态?如果没有,您可能需要将以下代码添加到构造函数:
$this->load->database();
$this->db
似乎没有定义。您的模型中似乎没有属性名称$db
您是否使用过:$this->load->database()代码>初始化数据库
请尝试以下代码:
class Model_users extends CI_Model {
function __construct(){
parent::__construct();
$this->load->database();
}
信息
示例:
用户指南:请参见下面的URL
试试看
class User_model extends CI_Model {
public function __construct()
{
parent::__construct();
$this->load->database();
}
public function can_log_in() {
$this->db->select('*');
$this->db->from('user');
$this->db->where('username', $this->input->post('username'));
$this->db->where('password', md5($this->input->post('password')));
$validate_user = $this->db->get();
if ($query->num_rows()==1) {
return TRUE;
} else {
return FALSE;
}
}
}
您遇到的问题与Codeigniter没有太大关系,也与数据库没有太大关系
这首先是一个标准的PHP错误,有关一般信息,请参见
在您的情况下-暂时忘记Codeigniter-这意味着,$this
bot是否有任何->db
或->加载
成员,失败的代码行:
$this->db->where('email', $this->input->post('email'));
$this->load->database();
很明显,这需要进一步调试。为什么那些库没有加载?为什么甚至不能加载数据库
实际上这需要进一步调试。在我看来,你在评论中进一步提问是没有意义的,其他用户只能给出与你在问题中提供好信息一样好的答案。当然,提问也总是有限的
也许首先发布模型类的完整代码。它可能只是模型类本身已经把它搞糟了。一双新鲜的眼睛在这里能更快地发现一些东西
但这并不能保证,只是一种可能性。你也可以在其他地方打破它。这些工具很难访问,因此您最好在开发环境中使用诸如Xdebug之类的step调试器来实现这一点。显然,方法,其中对非对象的对象调用了。您可以向用户显示用户超类吗?但它是在我的配置文件中定义的。我不知道CodeIgniter,但错误很明显<代码>$this->db
不是对象。如果您认为您从对象的超类请求db字段,那么您就做错了。如何处理此问题?尝试更改行$this->load->model('model_users')在username\u check()
中编码>到$this->load->model('model\u users','',TRUE)
自动连接到数据库OK我添加了$this->load->database();在构造函数中,但现在是第7行的错误。您可以在当前状态下更新文件吗(第7行是第7行?)第7行正好是$this->load->database()是否已设置$autoload['libraries']=array('database')代码>?$autoload['libraries']=array('database')代码>-->application/config/autoload.phpi已更新我的答案请查看。致命错误:在C:\xampp\htdocs\moi\CI\application\models\model_users.php第7行的非对象上调用成员函数database(),而不使用/$this->load->database();我得到了这个致命错误:在C:\xampp\htdocs\moi\CI\application\models\model\u users.php的第13行对非对象调用成员函数select()。看到这个URL我得到了类似的错误消息:致命错误:调用成员函数数据库()在第7行C:\xampp\htdocs\moi\CI\application\models\model\u users.php中的非对象上,您没有偶然移动或重命名Codeigniter系统文件夹,是吗?听起来好像没有一个CI核心加载正确。