0

我是 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;
  }
}

这是我的课,我试图在构造函数中连接数据库

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 是对象',我的问题是我做得对吗?如果是,我该如何解决这些问题,我很难理解发布的答案

4

1 回答 1

1

它应该是

    $this->result = mysqli_query($this->dbc->dbc, $q);
                                            ^^^^----

请注意对象引用中的双倍 dbc。第一个是您的类中的私有dbc属性Slideshow,第二个 dbc 是在您的 DB 类中创建的实际 DB 句柄。

于 2013-10-10T17:28:01.433 回答