一直在研究php的設計模式,可是沒有親歷使用過,因此仍是隻知其一;不知其二,經過幾天的學習終於對php的單例設計模式稍稍的有些瞭解,特此寫出一個數據庫處理類(只涉及到簡單的原理),以便本身之後方便查閱,至於其餘設計模式我會慢慢理解,而後會以實例的形式發佈到該博客:php
/** * 單例模式 */ class Db{ private static $mysqli;//該類中的惟一一個實例 private function __construct(){}//防止在外部實例化該類 private function __clone(){}//禁止經過複製的方式實例化該類 public static function connect(){//數據庫鏈接方法 self::$mysqli = new MySQLi("localhost","root","","test"); self::$mysqli->query("set names utf8"); } public static function select($table){//數據庫操做方法,後續能夠繼續完善和添加...... self::connect(); $result = self::$mysqli->query("select * from ".$table); $result_arr = array(); while($query = $result->fetch_assoc()){ $result_arr[] = $query; } return $result_arr;//結果集以數組的形式返回 } } $result = Db::select("article"); echo '<pre>'; print_r($result); echo '</pre>';
還有第二種寫法:以下mysql
class Db{ private static $_instance = null;//該類中的惟一一個實例 private $dbConn; private function __construct(){//防止在外部實例化該類 $this->dbConn = new MySQLi("localhost","root","","test"); $this->dbConn->query("set names utf8"); } private function __clone(){}//禁止經過複製的方式實例化該類 public static function getInstance(){ if(self::$_instance == null){ self::$_instance = new self(); } return self::$_instance; } public function select($table){//數據庫操做方法,後續能夠繼續完善和添加...... $result = $this->dbConn->query("select * from ".$table); $result_arr = array(); while($query = $result->fetch_assoc()){ $result_arr[] = $query; } return $result_arr;//結果集以數組的形式返回 } } $db = Db::getInstance(); $result = $db->select('article'); echo '<pre>'; print_r($result); echo '</pre>';