亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

數(shù)據(jù)庫連接的單例模式案例,確保只會產(chǎn)生一個數(shù)據(jù)庫連接對象

Original 2019-03-19 15:21:46 259
abstract:<?php //單例模式--數(shù)據(jù)庫連接 class Singleton {     /**      * 1)靜態(tài)變量,保存全局實例,跟類綁定,跟對象無關      * 2)私有屬性,為了避免類外直接調用 類名:
<?php

//單例模式--數(shù)據(jù)庫連接
class Singleton
{
    /**
     * 1)靜態(tài)變量,保存全局實例,跟類綁定,跟對象無關
     * 2)私有屬性,為了避免類外直接調用 類名::$instance,防止為空
     */
    private static $instance;
    private $host;//主機
    private $user;//用戶
    private $pass;//密碼
    private $dbname;//數(shù)據(jù)庫名
    /**
     * Description:數(shù)據(jù)庫連接句柄
     */
    private $db;

    /**
     * 私有化構造函數(shù),防止外界實例化對象
     */
    private function __construct($host, $user, $pass, $dbname)
    {
        $this->db = new mysqli($host, $user, $pass, $dbname) or die(mysql_errno());
    }

    /**
     * 私有化克隆函數(shù),防止外界克隆對象
     */
    private function __clone()
    {
    }

    /**
     * 靜態(tài)方法,單例訪問統(tǒng)一入口
     * @return Singleton:返回應用中的唯一對象實例
     */
    public static function GetInstance($host, $user, $pass, $dbname)
    {
        if (!(self::$instance instanceof self)) {
            self::$instance = new self($host, $user, $pass, $dbname);
        }
        return self::$instance;
    }

    /**
     * 獲取數(shù)據(jù)庫的私有方法的連接句柄
     */
    public function GetDbConnect()
    {
        return $this->db;
    }
}

$db = Singleton::GetInstance('127.0.0.1', 'root', '', 'test');


Release Notes

Popular Entries