<?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());