我是 php 类编程的新手,这是我的数据库类。
class Database
{
private $_connection;
private static $_instance; //The single instance
private $_host = 'localhost';
private $_username = 'root';
private $_password = '';
private $_database = 'admission_portal';
//connect to database
public function connectDb()
{
try {
$this->_connection = new \PDO("mysql:host=$this->_host;dbname=$this->_database", $this->_username, $this->_password);
/*** echo a message saying we have connected ***/
echo 'Connected to database';
} catch (PDOException $e) {
echo $e->getMessage();
}
}
//run the query
public function run($sql)
{
$result=$this->_connection->prepare($sql);
return $result->execute();
}
}
我将其扩展到核心类来执行一些数据库操作。
class Core extends Database
{
//get all the universities
public function getData()
{
Database::connectDb();
$sql = 'SELECT * FROM `adm_universities`';
$r=Database::run($sql);
print_r($r->fetchAll(PDO::FETCH_OBJ));
}
}
现在我像这样调用 getData 函数。
$db=new Core();
$db->getData();
但我会得到这个
致命错误:对布尔值调用成员函数 fetchAll()。
我的代码有什么错误?请帮助我
您需要返回$result
仅在run()
method:
public function run($sql)
{
$result=$this->_connection->prepare($sql);
$result->execute();
return $result;
}
返回$result->execute();
正在返回true
因为execute()
成功了。您需要返回当前状态$result
.
看看是否有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)