代码点火器:在非对象上调用成员函数 num_rows()

Posted

技术标签:

【中文标题】代码点火器:在非对象上调用成员函数 num_rows()【英文标题】:Code igniter : Call to a member function num_rows() on a non-object 【发布时间】:2013-01-30 00:59:54 【问题描述】:

我已经在 localhost 上的 codeigniter 中开发了一个应用程序...该应用程序运行良好..然后我将应用程序上传到临时服务器...登录到管理面板后我收到此错误..但是如果我运行本地主机中的同一个应用程序运行良好...

错误

  Fatal error: Call to a member function num_rows() on a non-object in  /home/u520606051/public_html/application/models/loginmodel.php on line 9

这是我的模特:

function validate($data)

    $query = $this->db->get_where('users', $data);
    if($query->num_rows() == 1)
    
        return true;
    

控制器

function verifyUser()

    //getting parameters from view 
    $data = array(
            'username' => $this->input->post('username'),
            'password' => $this->input->post('password')
        );      
    $this->load->model('loginModel'); 
    $query = $this->loginModel->validate($data);

    if ($query)
    
        //if the user c validated
        //data variable is created becx we want to put username in session
        $data = array(
                'username' => $this->input->post('username'),
                'is_logged_in' => true  
            );

        $this->session->set_userdata($data);
        redirect('sessionController/dashboard_area');
    
    else
    
        $this->index();
    
    

模态文件名:

  loginmodel.php

 class Loginmodel extends CI_Model 

控制器文件名

loginController.php

 class LoginController extends CI_Controller 

【问题讨论】:

【参考方案1】:

好吧,我自己想出了一个解决方案..实际上它没有加载数据库,因此当我想查询并选择结果时,我得到了这个错误,最后当我检查我的 databse.php 文件时,有一个白色数据库名称中的空格,所以我将其删除..谢谢大家

【讨论】:

【参考方案2】:

如果看不到您的文件名,我无法保证,但几乎可以肯定的是,您在文件名、类名和调用(加载)名中使用不同的大写字母命名了您的模型。

您的本地主机很可能是 Windows,这无关紧要;您的服务器很可能是区分大小写的 Linux

回去检查一切是否都一样,你会没事的

【讨论】:

模型本身正在加载,否则此模型无法抛出错误。文件名应该可以正常工作,我猜 $query 是空的,因为它无法创建正确的对象,因为数据库连接不正确。 是的,我想你是对的,但还是有点怀疑: $this->load->model('loginModel');无论如何,OP - 你的查询失败了。在 Config 文件中打开数据库调试 gon,并尝试 $this->db->last_query();在查询行之后查看它是否告诉您任何信息 - 可能是架构或权限问题,或者类似这些行

以上是关于代码点火器:在非对象上调用成员函数 num_rows()的主要内容,如果未能解决你的问题,请参考以下文章

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

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

在非构造的“对象”上调用非虚拟成员函数是不是定义明确? [复制]

PDO 致命错误:在非对象上调用成员函数 prepare()

在非对象上调用成员函数 select() : codeigniter over XAMPP

带有 PDO 的基于 PHP 类的用户系统 - 在非对象上调用成员函数 prepare()