2012-02-28 68 views
1

我遇到了mysql和codeigniter的一個奇怪問題。我收到以下錯誤消息:使用CodeIgniter調用成員函數result()

Fatal error: Call to a member function result() on a non-object in 

控制器:

class Event extends Client_Controller 
{ 
    function __construct() 
    { 
     parent::__construct(); 
     $this->load->model('Event_Model', '', TRUE); 
    } 

    function pending() 
    { 
     $data['query'] = $this->Event_Model->get_events_list("pending"); 
     $this->load->view('event/pending', $data); 
    } 

} 

型號:

class Event_Model extends Client_Model 
{ 
    function __construct() 
    { 
     parent::__construct(); 
    } 

    function get_events_list($event_status = '') 
    { 
     $query = $this->db->query("SELECT * FROM tbl_events WHERE event_status= ? ORDER BY event_id DESC", array($event_status)); 

     return $query->result();// Error is on this line 
    } 
} 

自動加載:

$autoload['libraries'] = array('database', 'session'); 

任何幫助表示讚賞。我有一些疑問,我的MySQL可能會超時?

回答

2

該錯誤可能是由於查詢(和生成的result()對象)爲空的事實。確保查詢試圖使用result()對象之前實際上返回至少一個記錄:

if($query->num_rows() > 0){ 
    return $query->result(); 
} 
+0

不是一個答案,而是一個提示..你應該使用避免兩件事..'SELECT *'作爲它的資源較多,你應該儘可能使用活動記錄.. http://codeigniter.com/user_guide/database/active_record.html – gorelative 2012-02-28 22:19:48

+1

我沒有試過這個:致命錯誤:調用一個非對象的成員函數num_rows()我相信它是在我使用的驅動程序或數據庫級別*僅用於此處的代碼.. – greenLizard 2012-02-28 22:22:44

+0

@animatora:然後您應該驗證您的數據庫連接和配置信息。 – 2012-02-28 22:24:21

相關問題