用單例模式來設計乙個PHP資料庫類

2021-06-22 14:40:04 字數 1596 閱讀 5168

<?php

class nmdb

private function __clone(){}

public static function get_class_nmdb($host, $username, $password)

return self::$_instance;

}// 連線資料表

public function select_db($database)

// 執行sql語句

public function query($query)

// 將結果集儲存為陣列

public function fetch_array($fetch_array)

// 獲得記錄數目

public function num_rows($query)

// 關閉資料庫連線

public function close()

}?>

這個類的使用如下:

$connector = nmdb::get_class_nmdb($host, $username, $password);

$connector -> select_db($database);

下面的類也可以參考下:

<?php

/** mysql 單例

*/class mysql else

mysql_select_db($this->database) or $this->err();

$this->query("set names ''", $this->link);

return $this->link;

}/**

* 防止被轉殖**/

private function __clone(){}

public static function getinstance($pconnect = false)

return self::$_instance;

}/**

* 查詢

*/public function query($sql, $link = '')

/*** 單行記錄

*/public function getrow($sql, $type = mysql_assoc)

/*** 多行記錄

*/public function getrows($sql, $type = mysql_assoc)

return $this->rows;

}/**

* 錯誤資訊輸出

*/protected function err($sql = null)

}//用例

$db = mysql::getinstance();

$db2 = mysql::getinstance();

$data = $db->getrows('select * from blog');

//print_r($data);

//判斷兩個物件是否相等

if($db === $db2)

?>

如何設計乙個單例模式

單例類最簡單的c 實現 class single single static single getinstance return m pinstance single single m pinstance null 單例要求 參考 劍指offer c 保證執行緒安全 class single ret...

PHP設計模式(一)單例模式

在物件導向程式設計中,我們會用到很多設計模式,比如常見的單例模式,工廠模式,模式,觀察者模式等等。每乙個模式,都能解決特定問題,是很多前輩經過很多實踐總結出來的。掌握並靈活運用它們,對於物件導向程式設計有很大的幫助。php中常用的設計模式有 class singlepattern return in...

php設計模式 一 單例模式

應用場景 資料庫連線這種比較費資源的操作 我們希望整個應用只實列化一次 結構 4私1公 私有化構造方法 防止使用 new 建立多個實列 私有化轉殖方法 防止clone多個實列 私有化重建方法 防止反序列化 私有化靜態屬性 防止直接訪問儲存實列的屬性 class signle1 return stat...