最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP中數(shù)據(jù)庫單例模式的實現(xiàn)代碼分享

 更新時間:2014年08月21日 09:48:56   投稿:junjie  
這篇文章主要介紹了PHP中數(shù)據(jù)庫單例模式的實現(xiàn)代碼分享,本文先是講解了單例模式的一些知識,然后給出了數(shù)據(jù)庫單例模式實現(xiàn)代碼,需要的朋友可以參考下

首先我們要知道明確單例模式這個概念,那么什么是單例模式呢?

單例模式顧名思義,就是只有一個實例。

作為對象的創(chuàng)建模式, 單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例,這個類我們稱之為單例類。

單例模式的要點有三個:

一是某個類只能有一個實例;
二是它必須自行創(chuàng)建這個實例;
三是它必須自行向整個系統(tǒng)提供這個實例。

下面我們討論下為什么要使用PHP單例模式?

多數(shù)人都是從單例模式的字面上的意思來理解它的用途, 認(rèn)為這是對系統(tǒng)資源的節(jié)省, 可以避免重復(fù)實例化, 是一種"計劃生育". 而PHP每次執(zhí)行完頁面都是會從內(nèi)存中清理掉所有的資源. 因而PHP中的單例實際每次運行都是需要重新實例化的, 這樣就失去了單例重復(fù)實例化的意義了. 單單從這個方面來說, PHP的單例的確有點讓各位失望. 但是單例僅僅只有這個功能和應(yīng)用嗎? 答案是否定的,我們一起來看看。

1. php的應(yīng)用主要在于數(shù)據(jù)庫應(yīng)用, 所以一個應(yīng)用中會存在大量的數(shù)據(jù)庫操作, 在使用面向?qū)ο蟮姆绞介_發(fā)時(廢話), 如果使用單例模式, 則可以避免大量的new 操作消耗的資源。

2. 如果系統(tǒng)中需要有一個類來全局控制某些配置信息, 那么使用單例模式可以很方便的實現(xiàn). 這個可以參看zend Framework的FrontController部分。

3. 在一次頁面請求中, 便于進(jìn)行調(diào)試, 因為所有的代碼(例如數(shù)據(jù)庫操作類db)都集中在一個類中, 我們可以在類中設(shè)置鉤子, 輸出日志,從而避免到處var_dump, echo。

class db {
  public static $cennct = null;
  private function __construct(){return false;}
  private function conn(){
    $pdo = new PDO('mysql:host=localhost;dbname=dbname','root','');
    $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);    
    $pdo->query('set names utf8');            
    return $pdo;                  
  }
  public static function getdb(){
    if(self::$cennct == null )
      self::$cennct = self::conn(); 
      return true;
  }
  protected function fetch($sql,$param=array()){
    $this->getdb();
    $tmp = self::$cennct->prepare($sql);
    $tmp->execute($param);
    return $tmp->fetch(PDO::FETCH_ASSOC);
  }
  protected function fetchAll($sql,$param=array()){
    $this->getdb();
    $tmp = self::$cennct->prepare($sql);
    $tmp->execute($param);
    return $tmp->fetchAll(PDO::FETCH_ASSOC);     
  }
  protected function execute($sql,$param=array()){
    $this->getdb(); 
    $tmp = self::$cennct->prepare($sql);
    return $tmp->execute($param);
  }
}

以上為一個數(shù)據(jù)庫操作單例模式

相關(guān)文章

  • PHP大文件分片上傳的實現(xiàn)方法

    PHP大文件分片上傳的實現(xiàn)方法

    在網(wǎng)站開發(fā)中,經(jīng)常會有上傳文件的需求,有的文件size太大直接上傳,經(jīng)常會導(dǎo)致上傳過程中耗時太久,大量占用帶寬資源,因此有了分片上傳。接下來通過本文給大家介紹PHP大文件分片上傳的實現(xiàn)方法,需要的朋友可以參考下
    2018-10-10
  • yii2簡單使用less代替css示例

    yii2簡單使用less代替css示例

    本篇文章主要介紹了yii2簡單使用less代替css示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • PHP+ajaxfileupload+jcrop插件完美實現(xiàn)頭像上傳剪裁

    PHP+ajaxfileupload+jcrop插件完美實現(xiàn)頭像上傳剪裁

    在做項目的時候,經(jīng)常需要一些會員系統(tǒng)相關(guān)的內(nèi)容,比如頭像的上傳與裁剪等等,下面將這塊內(nèi)容分享給大家
    2014-06-06
  • 在laravel-admin中列表中禁止某行編輯、刪除的方法

    在laravel-admin中列表中禁止某行編輯、刪除的方法

    今天小編就為大家分享一篇在laravel-admin中列表中禁止某行編輯、刪除的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • ThinkPHP3.2利用QQ郵箱/163郵箱通過PHPMailer發(fā)送郵件的方法

    ThinkPHP3.2利用QQ郵箱/163郵箱通過PHPMailer發(fā)送郵件的方法

    最近因為工作的需要,要實現(xiàn)給我們的網(wǎng)站用戶發(fā)送郵件的需求,所以下面這篇文章主要給大家介紹了關(guān)于ThinkPHP3.2利用QQ郵箱/163郵箱通過PHPMailer發(fā)送郵件的方法,需要的朋友可以參考借鑒,下面隨著小編來一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • destoon會員注冊提示“數(shù)據(jù)校驗失?。?)”解決方法

    destoon會員注冊提示“數(shù)據(jù)校驗失?。?)”解決方法

    這篇文章主要介紹了destoon會員注冊提示“數(shù)據(jù)校驗失?。?)”解決方法,需要的朋友可以參考下
    2014-06-06
  • 詳解Laravel模型事件和模型事件在Trait中的使用

    詳解Laravel模型事件和模型事件在Trait中的使用

    這篇文章主要為大家介紹了詳解Laravel模型事件和模型事件在Trait中的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 簡單談?wù)凱HP的垃圾回收機制

    簡單談?wù)凱HP的垃圾回收機制

    這篇文章主要介紹了簡單談?wù)凱HP的垃圾回收機制的相關(guān)資料,需要的朋友可以參考下
    2018-03-03
  • Yii快速入門經(jīng)典教程

    Yii快速入門經(jīng)典教程

    這篇文章主要介紹了Yii快速入門經(jīng)典教程,結(jié)合實例形式較為詳細(xì)的分析了Yii開發(fā)的基本概念,原理,使用技巧與相關(guān)注意事項,需要的朋友可以參考下
    2015-12-12
  • Thinkphp頁面跳轉(zhuǎn)設(shè)置跳轉(zhuǎn)等待時間的操作

    Thinkphp頁面跳轉(zhuǎn)設(shè)置跳轉(zhuǎn)等待時間的操作

    今天小編就為大家分享一篇Thinkphp頁面跳轉(zhuǎn)設(shè)置跳轉(zhuǎn)等待時間的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10

最新評論

资溪县| 阳东县| 额尔古纳市| 承德县| 赤峰市| 东源县| 桦甸市| 崇左市| 彩票| 铜鼓县| 晋城| 隆回县| 嘉峪关市| 唐河县| 六枝特区| 远安县| 陕西省| 晋州市| 乌兰浩特市| 灵川县| 威信县| 巴林右旗| 南城县| 原阳县| 吴川市| 桃园市| 石台县| 孙吴县| 额济纳旗| 灯塔市| 新河县| 哈巴河县| 漳州市| 神农架林区| 万源市| 罗定市| 垦利县| 光泽县| 庄河市| 洱源县| 萨迦县|