代码点火器:在非对象上调用成员函数 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()