我是OOP php的新手,现在我试图了解整体模式,但我在共享所有类的数据库连接时遇到了麻烦。我指的是这个答案,它使数据库连接成为单例类并在每个构造函数中调用它。
这是单例数据库类,应该做连接部分,我有我的自动加载设置
class DatabaseConnection{
private static $instance;
private $dbc;
private function __construct(){
$this->dbc = mysqli_connect(...);
}
public static function connectDb(){
if(empty(self::$instance)){
self::$instance = new DatabaseConnection;
}
return self::$instance;
}
}
这是我的类,我试图在构造函数中连接db
class SlideShow {
private $dbc;
private $result;
function __construct() {
$this->dbc=DatabaseConnection::connectDb();
$this->result=$this->getSlideShow();
}
private function getSlideShow(){
$q = "SELECT * FROM table";
$this->result = mysqli_query($this->dbc, $q);
//the error stated $dbc , object given
}
}
我在幻灯片课上遇到了一个问题,说$dbc是对象',我的问题是我做得对吗?如果是,我该如何解决这些东西,我很难理解发布的答案
它应该是
$this->result = mysqli_query($this->dbc->dbc, $q);
^^^^----
请注意对象引用中的双倍 dbc。第一个是 Slideshow
类中的私有 dbc
属性,第二个 dbc 是在数据库类中创建的实际数据库句柄。