php - CodeIgniter cannot load database library manually or autoload; Call to Member function get() on a non object


I'm unable to load the database library correctly manually in my model or in autoload.php

The line $query = $this->db->get('videos'); produces a Call to Member function get() on a non object error indicating the database library is not loaded.

I try loading the database library using the two lines commented out in the constructor for the model below but both return errors. If I uncomment $this->load->database I get a Call to member function database() on a non object error,

If I uncomment $this->load->library('database') I get a Call to member function library() on a non object error

class Videos_model extends CI_Model {
  public function __construct()

    public function get_videos() 
           $query = $this->db->get('videos');


The same line $this->load->database(); in the controller does not produce an error but the get() function error.

class Videos extends CI_Controller {

    public function __construct() {

I also have set autoload in the config file,

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

in my CI Log file database driver is indicated to be initialized DEBUG - 2013-05-09 15:31:17 --> Database Driver Class Initialized

Here is my database config as well,

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'dbusername';
$db['default']['password'] = 'dbpassword';
$db['default']['database'] = 'dbname';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

I'm using CI 2.1.3 in eclipse with aptana studio 3 plugin and phpMyAdmin and Apache Server 2.2

Update: I've confirmed that accessing the database works from the controller but not the model.




Found the answer.

I had used this tutorial to get autocompletion working in Eclipse,, (link 404'd) Once I removed the extra code in controller.php and model.php database access in the model was restored.

Here is a better tutorial on how to get autocomplete working in eclipse, (read the comments to find out how to get it working in models as well as controllers).

People are also looking for solutions to the problem: php - advanced authentication routes in laravel 5


Didn't find the answer?

Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.

Ask a Question

Write quick answer

Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.

Similar questions

Find the answer in similar questions on our website.