Zephryte Zephryte
Zephryte Zephryte

Reputation: 39

Fatal error: call to undefined method Database::prepare() on line 53

So I made a function in my class, it's supposed to get settings from my database. and it gives me this error:

Fatal error: call to undefined method Database::prepare()

It's on line 53.

Here's line 51 'till 66 (I took some more lines because you can see the whole function.

public function getSetting( $setting )
{
    $query = $this->db->prepare( 'SELECT value FROM ' . $this->prefix( 'settings' ) . ' WHERE name= ?' );
    $query->bind_param( 's', $setting );
    $query->execute();
    $query->bind_result( $result );
    if ( $query->num_rows > 0 )
    {
        while ( $stmt->fetch() ) 
        {
            return $result;
        }
    }
    $query->free_result();
    $query->close;
}

the $db thingie is passed on through a constructor.

Can someone help me fixing this?

Thanks.

Edit:

Cups asked me to use var_dump on $this->db, this is the output. (I beautified it a little)

          object(database)#1 (5) { ["hostname"]=> string(9) "localhost" ["username"]=> string(4) "root" ["password"]=> string(0) "" ["database"]=> string(7) "wscript" ["connection"]=> object(mysqli)#2 (19) 
        {
         ["affected_rows"]=> int(0) ["client_info"]=> string(79) "mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $" ["client_version"]=> int(50011) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) 
["error"]=> string(0) "" ["error_list"]=> array(0) { 
        } ["field_count"]=> int(0) ["host_info"]=> string(20) "localhost via TCP/IP" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> string(6) "5.6.20" ["server_version"]=> int(50620) 
    ["stat"]=> string(136) "Uptime: 18286 Threads: 1 Questions: 1699 Slow queries: 0 Opens: 191 Flush tables: 1 Open tables: 82 Queries per second avg: 0.092" 
    ["sqlstate"]=> string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(216) ["warning_count"]=> int(0) } }

Upvotes: 0

Views: 722

Answers (1)

Zephryte Zephryte
Zephryte Zephryte

Reputation: 39

Figured it out. $db is only a reference to the DB class. I forgot to put the connection variable between.

Upvotes: 1

Related Questions