用户
 找回密码
 入住 CI 中国社区
搜索
查看: 17427|回复: 10
收起左侧

Fatal error: Call to a member function result_array() on a non-object in /hom...

[复制链接]
发表于 2012-11-29 12:45:52 | 显示全部楼层 |阅读模式
我这两天刚开始学习codeigniter 下载了最新版本2.1.3,对照着用户指南写新闻系统,结果老是有这个错误

Fatal error: Call to a member function result_array() on a non-object in/home/a5755403/public_html/codeigniter2.1.3/application/models/news_model.php on line 21

从网上找答案一直没解决,后来试着把news_model.php中
$query = $this->db->get('news');改成了$query = $this->db->from('news');
结果又报了下面的错误,一直解决不了,求解啊!

Fatal error: Call to undefined method CI_DB_mysql_driver::result_array() in/home/a5755403/public_html/codeigniter2.1.3/application/models/news_model.php on line 21
发表于 2012-11-29 13:17:46 | 显示全部楼层
分析如下数据库类没有载入$this->load->database()
发表于 2012-11-29 13:19:57 | 显示全部楼层
例子如下:$query = $this->db->get_where('user',array('userid'=>$id));
               $row = $query->row_array();       
 楼主| 发表于 2012-11-29 13:56:08 | 显示全部楼层
longfeiyu 发表于 2012-11-29 13:17
分析如下数据库类没有载入$this->load->database()

绝对载入了  
 楼主| 发表于 2012-11-29 13:57:27 | 显示全部楼层
longfeiyu 发表于 2012-11-29 13:19
例子如下:$query = $this->db->get_where('user',array('userid'=>$id));
               $row = $query-> ...

不是要返回一条信息,而是要返回全部数据 ,  结果result_array()和result()都不行
 楼主| 发表于 2012-11-29 14:23:45 | 显示全部楼层
longfeiyu 发表于 2012-11-29 13:19
例子如下:$query = $this->db->get_where('user',array('userid'=>$id));
               $row = $query-> ...

<?php
    class News_model extends CI_Model {

        public function __construct()
        {
            parent::__construct();
            $this->load->database();
        }
   
        public function get_news($slug = FALSE)
        {
            
            if ($slug === FALSE)
            {
                $query = $this->db->get('news');
                return $query->result_array();

            }
            
            $query = $this->db->get_where('news', array('slug' => $slug));
            return $query->row_array();
        }
    }
   
   
   
?>


你看一下 这样有错么?
发表于 2012-11-29 14:37:49 | 显示全部楼层
$query = $this->db->get('news');
return $query->result()返回的类型是一个对象。
return $query->result_array()返回的结果才是数组。
请查看回去数据的方式。对象->属性 数组['attr']
发表于 2012-11-29 15:01:39 | 显示全部楼层
huitianhappy 发表于 2012-11-29 14:23
你看一下 这样有错么?

他提示什么? 还是提示非对象访问方法吗?
发表于 2012-11-29 15:03:58 | 显示全部楼层
longfeiyu 发表于 2012-11-29 15:01
他提示什么? 还是提示非对象访问方法吗?

先把query 给var_dump()出来看看是不是object
 楼主| 发表于 2012-11-29 16:10:54 | 显示全部楼层
longfeiyu 发表于 2012-11-29 15:03
先把query 给var_dump()出来看看是不是object

object(CI_DB_mysql_driver)#13 (73) { ["dbdriver"]=> string(5) "mysql" ["_escape_char"]=> string(1) "`" ["_like_escape_str"]=> string(0) "" ["_like_escape_chr"]=> string(0) "" ["delete_hack"]=> bool(true) ["_count_string"]=> string(19) "SELECT COUNT(*) AS " ["_random_keyword"]=> string(7) " RAND()" ["use_set_names"]=> NULL ["ar_select"]=> array(0) { } ["ar_distinct"]=> bool(false) ["ar_from"]=> array(1) { [0]=> string(6) "`news`" } ["ar_join"]=> array(0) { } ["ar_where"]=> array(0) { } ["ar_like"]=> array(0) { } ["ar_groupby"]=> array(0) { } ["ar_having"]=> array(0) { } ["ar_keys"]=> array(0) { } ["ar_limit"]=> bool(false) ["ar_offset"]=> bool(false) ["ar_order"]=> bool(false) ["ar_orderby"]=> array(0) { } ["ar_set"]=> array(0) { } ["ar_wherein"]=> array(0) { } ["ar_aliased_tables"]=> array(0) { } ["ar_store_array"]=> array(0) { } ["ar_caching"]=> bool(false) ["ar_cache_exists"]=> array(0) { } ["ar_cache_select"]=> array(0) { } ["ar_cache_from"]=> array(0) { } ["ar_cache_join"]=> array(0) { } ["ar_cache_where"]=> array(0) { } ["ar_cache_like"]=> array(0) { } ["ar_cache_groupby"]=> array(0) { } ["ar_cache_having"]=> array(0) { } ["ar_cache_orderby"]=> array(0) { } ["ar_cache_set"]=> array(0) { } ["ar_no_escape"]=> array(0) { } ["ar_cache_no_escape"]=> array(0) { } ["username"]=> string(16) "a5755403_dextyle" ["password"]=> string(11) "dextree2716" ["hostname"]=> string(27) "lmysql6.000webhost.com:3306" ["database"]=> string(16) "a5755403_dextyle" ["dbprefix"]=> string(0) "" ["char_set"]=> string(4) "utf8" ["dbcollat"]=> string(15) "utf8_general_ci" ["autoinit"]=> bool(true) ["swap_pre"]=> string(0) "" ["port"]=> string(4) "3306" ["pconnect"]=> bool(true) ["conn_id"]=> bool(false) ["result_id"]=> bool(false) ["db_debug"]=> bool(false) ["benchmark"]=> int(0) ["query_count"]=> int(0) ["bind_marker"]=> string(1) "?" ["save_queries"]=> bool(true) ["queries"]=> array(0) { } ["query_times"]=> array(0) { } ["data_cache"]=> array(0) { } ["trans_enabled"]=> bool(true) ["trans_strict"]=> bool(true) ["_trans_depth"]=> int(0) ["_trans_status"]=> bool(true) ["cache_on"]=> bool(false) ["cachedir"]=> string(0) "" ["cache_autodel"]=> bool(false) ["CACHE"]=> NULL ["_protect_identifiers"]=> bool(true) ["_reserved_identifiers"]=> array(1) { [0]=> string(1) "*" } ["stmt_id"]=> NULL ["curs_id"]=> NULL ["limit_used"]=> NULL ["stricton"]=> bool(false) }
PHP Error Message


Fatal error: Call to undefined method CI_DB_mysql_driver::result_array() in /home/a5755403/public_html/codeigniter2.1.3/application/models/news_model.php on line 20


var_dump的结果

本版积分规则