greenLizard
greenLizard

Reputation: 2346

Call to a member function result() using CodeIgniter

I am having a strange issue with mysql and codeigniter. I am getting the following error message:

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

Controller:

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);
    }   

}

Model:

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:

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

Any help is appreciated. I have some doubts that my mysql might time-out?

Upvotes: 1

Views: 21506

Answers (2)

Alejandro Rico Garcia
Alejandro Rico Garcia

Reputation: 21

Usually it's because your query is wrong. Remember that result() is boolean and if nothing comes back it is a fatal error since in the SQL server an error returned

Upvotes: 2

Colin Brock
Colin Brock

Reputation: 21565

The error is likely due to the fact that the query (and resulting result() object) are empty. Ensure that the query actually returns at least one record before attempting to use the result() object:

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

Upvotes: 3

Related Questions