天天看點

php單例連接配接資料庫

mysql_connect() 後續的php就不支援了,是以會報錯。

現在改為使用mysqli_connect(),需要開啟php擴充喲!

<?php

class Danli{

  //儲存類執行個體的靜态成員變量

  private static $_instance = null;

  private $conn;

  //private标記的構造方法

  private function __construct(){

    //$conn = new mysqli('localhost', 'root', '123', 'php37');

    $this->conn = mysqli_connect('localhost', 'root', '123', 'php37');

    if (mysqli_connect_errno()) {

       printf("Connect failed: %s\n", mysqli_connect_error());

       exit();

    }

  }

  //單例方法,用于通路執行個體的公共的靜态方法

  public static function getInstance(){

      if(!self::$_instance instanceof self){

          self::$_instance = new self;

       }

      return self::$_instance;

   }

   //建立__clone方法防止對象被複制克隆

   private function __clone(){ }

   // 防止析構函數被調用

   // private function __destruct(){ }

}

   //用new執行個體化private标記構造函數的類會報錯

   //$danli = new Danli();

   //正确方法,用雙冒号::操作符通路靜态方法擷取執行個體

   $danli=Danli::getInstance();

   var_dump($danli);

   //$danli->test();

   //複制(克隆)對象将導緻一個E_USER_ERROR

   //$danli_clone=clone $danli;

轉載于:https://www.cnblogs.com/sxiangyues/p/6529943.html