我是OOP php的新手,现在我试图理解整体模式,但我在所有类的共享数据库连接的某个地方。 我指的是这个answer ,它使db连接成为一个单独的类,并在每个构造函数中调用它。
这是单例数据库类,应该做连接部分,我有自动加载集
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;
}
}
这是我的类,我试图在构造函数
中连接dbclass 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
}
}
我的SlideShow类中有一个问题,说 $ dbc是对象',我的问题是我做得对吗?如果是,我如何解决这些问题,我很难理解发布的answer
答案 0 :(得分:1)
应该是
$this->result = mysqli_query($this->dbc->dbc, $q);
^^^^----
注意对象引用中的doubled dbc。第一个是dbc
类中的私有Slideshow
属性,第二个dbc是在数据库类中创建的实际数据库句柄。