數據庫連接單例模式

<?php
    //數據庫連接單例模式
    /**
     * 以後開的時候 注意事項
     * 儘量在一個函數中 實現一種功能
     * 之後,可以在構造函數中去調用函數
     */
    class MySqlDB{
        //創建私有屬性
        private static $instence;
        private $host;
        private $user;
        private $pwd;
        private $port;
        private $db;
        private $charset;
        private $link;
        //實例化
        private function __construct($data){
            $this->initArg($data);
            $this->sqlLink();
        }
        private function __clone(){
        }
        //創建對象
        public static function createLink($data=array()){
            if(!self::$instence instanceof self){
                return self::$instence =new self($data);
            }
            return  self::$instence;
        }

        //初始化參數
        private function initArg($data){
            $this->host=$data['host'] ?? "127.0.0.1";
            $this->user=$data['user'] ?? "root";
            $this->pwd=$data['pwd'] ?? "root";
            $this->port=$data['port'] ?? "3306";
            $this->db=$data['db'] ?? "my_db";
        }

        private function sqlLink(){
            $this->link=mysqli_connect($this->host,$this->user,$this->pwd,$this->db,$this->port);
            if(mysqli_connect_error()){
                echo "數據庫連接失敗<br>";
                echo "錯誤代碼". mysqli_connect_errno();
                exit;
            }
            mysqli_set_charset($this->link,$this->charset);

        }

    }

var_dump(MySqlDB::createLink());

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章