用户
 找回密码
 入住 CI 中国社区
搜索
12
返回列表 发新帖
楼主: 88219020
收起左侧

[已解决] 解决Call to a member function get() on a non-object

[复制链接]
发表于 2011-6-16 08:42:55 | 显示全部楼层
本帖最后由 spt119 于 2011-6-16 08:43 编辑

Call to a member function get() on a non-object
这个问题经常出现。我自己总结,原因大概是一下几点:
[1] get()方法返回的是空值。如果是这个原因,最好在foreach里加个array强制判断,一般就能避免出现这个问题。
[2] private属性函数的返回值被不恰当调用。
[3] 数据库中没有相关表或get()中表名、前缀名、字段名笔误。
[4] 在构造函数中定义的变量及变量的初始值,但在函数中变量的赋值类型与构造函数中不符。比如定义array类型在构造函数里,但在函数中赋值str类型(但也不是所有时候都报错)。
[5] 有些循环累加操作,如“.=”时,需要之前先设置好一个空变量,然后再将“.=”的值赋给这个变量。如果直接赋值,一般就要出错。
[6] mysqli或mysql的方式连接数据出现错误。尝试改换成mysql或mysqli。
我碰到的Call to a member function get() on a non-object,基本能在上面的可能里找到答案。希望能帮到你。

评分

参与人数 1威望 +5 收起 理由
Hex + 5 很给力!

查看全部评分

发表于 2011-6-22 15:39:28 | 显示全部楼层
呵呵 ,遇到同样问题,七楼的是正确答案,谢谢7楼了
发表于 2011-11-2 17:38:40 | 显示全部楼层
当一个模型被载入时,它并不会自动连接数据库。以下方法可以使您连接数据库:

您可以使用标准方法来连接数据库(说明), 也可以通过控制器或者您的自定义模型。
您可以把第三个参数设置为TRUE来使模型装载函数自动连接数据库,连接配置可以在您的数据库配置文件中可以定义:
$this->load->model('Model_name', '', TRUE);
发表于 2011-12-31 14:49:58 | 显示全部楼层
$this->load->database(); 在构造函数那边加上这个就好了
发表于 2013-10-18 00:39:52 | 显示全部楼层
本帖最后由 snllll 于 2013-10-18 00:48 编辑

这个问题在2.1.4上莫名其妙的又出现了!

我用result_array()出问题。

诡异的是:我之前用的好好的,突然页面白了!(禁止debug了),最后本机上看就是这里出问题了。

首先:我只是在修改model的代码,不涉及之前database能载入,现在载入不了的问题;
其次:我只是修改sql代码(我是直接查询的),就出问题了;

百度中有人说是sql太长了,my.cnf配置改一下,但是尝试了没用;

说database的库没有自动加载,这是扯淡,之前就加载好好的,一直没改过;


诡异至极!

________________
13、14 的方法都不解决问题
发表于 2013-10-18 00:51:21 | 显示全部楼层
发表于 2013-10-18 01:00:05 | 显示全部楼层
OK!
问题找到了,是数据库的连接设置的问题。

有类似问题的朋友可以看看官方的论坛:
http://ellislab.com/forums/viewthread/151121/
发表于 2014-7-19 00:40:25 | 显示全部楼层
遇到同样的问题,原因是:拼写错误construct 并且__ 下划线是两个。

本版积分规则