2012-02-28 30 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()オブジェクトを使用しようとする前に、少なくとも1つのレコードを返すことを確認してください:

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

ない答えが、先端部を..あなたは、その多くのリソースを消費するとして '' * SELECTを使用して...二つのことを避ける必要がありますすべての可能なときにアクティブなレコードを使用する必要があります。http://codeigniter.com/user_guide/database/active_record.html – gorelative

+1

私はこれを試しました:致命的なエラー:非オブジェクト上のメンバ関数num_rows()を呼び出します。私はそれがドライバやデータベースレベルにあると信じています。私はここのコードのためだけに使用しています。 – greenLizard

+0

@animatora:データベース接続と設定情報を確認する必要があります。 –

関連する問題