Call to a member function get() on a non-object
这个问题经常出现。我自己总结,原因大概是一下几点:
get()方法返回的是空值。如果是这个原因,最好在foreach里加个array强制判断,一般就能避免出现这个问题。
private属性函数的返回值被不恰当调用。
数据库中没有相关表或get()中表名、前缀名、字段名笔误。
在构造函数中定义的变量及变量的初始值,但在函数中变量的赋值类型与构造函数中不符。比如定义array类型在构造函数里,但在函数中赋值str类型(但也不是所有时候都报错)。
有些循环累加操作,如“.=”时,需要之前先设置好一个空变量,然后再将“.=”的值赋给这个变量。如果直接赋值,一般就要出错。
mysqli或mysql的方式连接数据出现错误。尝试改换成mysql或mysqli。
我碰到的Call to a member function get() on a non-object,基本能在上面的可能里找到答案。希望能帮到你。 呵呵 ,遇到同样问题,七楼的是正确答案,谢谢7楼了:lol 当一个模型被载入时,它并不会自动连接数据库。以下方法可以使您连接数据库:
您可以使用标准方法来连接数据库(说明), 也可以通过控制器或者您的自定义模型。
您可以把第三个参数设置为TRUE来使模型装载函数自动连接数据库,连接配置可以在您的数据库配置文件中可以定义:
$this->load->model('Model_name', '', TRUE);
$this->load->database(); 在构造函数那边加上这个就好了 本帖最后由 snllll 于 2013-10-18 00:48 编辑
这个问题在2.1.4上莫名其妙的又出现了!
我用result_array()出问题。
诡异的是:我之前用的好好的,突然页面白了!(禁止debug了),最后本机上看就是这里出问题了。
首先:我只是在修改model的代码,不涉及之前database能载入,现在载入不了的问题;
其次:我只是修改sql代码(我是直接查询的),就出问题了;
百度中有人说是sql太长了,my.cnf配置改一下,但是尝试了没用;
说database的库没有自动加载,这是扯淡,之前就加载好好的,一直没改过;
诡异至极!
________________
13、14 的方法都不解决问题 http://bbs.phpchina.com/forum.php?mod=viewthread&tid=265132
与php环境有关? OK!
问题找到了,是数据库的连接设置的问题。
有类似问题的朋友可以看看官方的论坛:
http://ellislab.com/forums/viewthread/151121/ 遇到同样的问题,原因是:拼写错误construct 并且__ 下划线是两个。
页:
1
[2]