Reputation: 39
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
Reputation: 39
Figured it out. $db
is only a reference to the DB class. I forgot to put the connection variable between.
Upvotes: 1