Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Codeigniter Fatal error: Call to a member function query() on a non-object

Now I am learning Codeigniter. I have more databases, so I choosed this time Anketa one. Why is error :

**Fatal error: Call to a member function query() on a non-object in /var/www/domains/svastara/application/controllers/anketa.php on line 12** ???

I chacked, the user and pass in database is ok, database is loaded in conf, and chacked the table name. So what more?

$this->db = $this->load->database('anketa');

        $q = $this->db->query("SELECT * FROM anketaip");

        if($q->num_rows()>0){
        foreach ($q->result() as $row)
        {
            $data[] = $row;
        }

        }return $data;

        $this->load->view('anketa_nova', $data);
like image 579
Daniela Avatar asked Oct 17 '12 09:10

Daniela


3 Answers

Below line doesn't return you database object until you pass second argument as TRUE

Change:

$this->db = $this->load->database('anketa');

To

$newdb = $this->load->database('anketa',TRUE);

$q = $newdb->query("SELECT * FROM anketaip");

Reference Link: http://codeigniter.com/user_guide/database/connecting.html

like image 159
GBD Avatar answered Nov 13 '22 03:11

GBD


You dont have to do this

$this->db = $this->load->database('anketa');

You can simply do it like this

$this->load->database('anketa');

$this->db->query('blah blah');

Also make sure database exists and you have rights to access it.

like image 45
Muhammad Raheel Avatar answered Nov 13 '22 02:11

Muhammad Raheel


Posibly you need to load the DB library, please check in you autoload.php that you are loading the database library

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

Or load the library in your controller

$this->load->library('database');
like image 26
m4t1t0 Avatar answered Nov 13 '22 01:11

m4t1t0