This question already has an answer here:
Can somebody point me in the right direction as to why the following piece of code is failing..
MySQLDb.php:
class MySQLDb
{
protected $_mysql;
protected $_query;
function __constructor($host,$username,$password,$db)
{
$this->_mysql = new mysqli($host,$username,$password,$db) or die('Problem connecting to the DB.');
}
function query($query)
{
$this->_query = filter_var($query,FILTER_SANITIZE_STRING);
$stmt = $this->_prepareQuery();
$stmt->execute();
$results = $stmt->_dynamicBindResult($stmt);
}
protected function _prepareQuery(){
$dbh = $this->_mysql;
if ( !$stmt = $dbh->prepare($this->_query) ) {
trigger_error('Problem preparing query', E_USER_ERROR);
}
return $stmt;
}
index.php:
require_once('MYSQLDb.php');
$Db = new MySQLDb('localhost','root','','blog');
$results =$Db->query("SELECT * FROM posts");
When I run the program it spits out the error fatal error: call to a member function prepare on a non-object
at if ( !$stmt = $dbh->prepare($this->_query) ) {
I'm trying to learn the object oriented way of doing this things so not very clued in on how to troubleshoot this.
thanks.
</div>