亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

單例模式的要點(diǎn)有三個:

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

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

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

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

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

3. 在一次頁面請求中, 便于進(jìn)行調(diào)試, 因?yàn)樗械拇a(例如數(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微信開發(fā)之有道翻譯

    PHP微信開發(fā)之有道翻譯

    這篇文章主要為大家詳細(xì)介紹了PHP微信開發(fā)之簡單實(shí)現(xiàn)有道翻譯的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-06-06
  • PHP中字符與字節(jié)的區(qū)別及字符串與字節(jié)轉(zhuǎn)換示例

    PHP中字符與字節(jié)的區(qū)別及字符串與字節(jié)轉(zhuǎn)換示例

    在php中字符是可使用多種不同字符方案或代碼頁來表示的抽象實(shí)體。字節(jié)是通過網(wǎng)絡(luò)傳輸信息(或在硬盤或內(nèi)存中存儲信息)的單位。本文還通過實(shí)例給大家介紹了php中字符串與字節(jié)轉(zhuǎn)換示例,感興趣的朋友一起看看吧
    2016-10-10
  • php結(jié)合GD庫簡單實(shí)現(xiàn)驗(yàn)證碼的示例代碼

    php結(jié)合GD庫簡單實(shí)現(xiàn)驗(yàn)證碼的示例代碼

    這篇文章主要介紹了php結(jié)合GD庫簡單實(shí)現(xiàn)驗(yàn)證碼的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • php 實(shí)現(xiàn)收藏功能的示例代碼

    php 實(shí)現(xiàn)收藏功能的示例代碼

    本篇文章主要介紹了php 實(shí)現(xiàn)收藏功能的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • ThinkPHP5實(shí)現(xiàn)作業(yè)管理系統(tǒng)中處理學(xué)生未交作業(yè)與已交作業(yè)信息的方法

    ThinkPHP5實(shí)現(xiàn)作業(yè)管理系統(tǒng)中處理學(xué)生未交作業(yè)與已交作業(yè)信息的方法

    這篇文章主要介紹了ThinkPHP5實(shí)現(xiàn)作業(yè)管理系統(tǒng)中處理學(xué)生未交作業(yè)與已交作業(yè)信息的方法,涉及thinkPHP針對數(shù)據(jù)表的查詢與遍歷操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-11-11
  • 初識PHP中的Swoole

    初識PHP中的Swoole

    Swoole是一種PHP高級Web開發(fā)框架,框架不是為了提升網(wǎng)站的性能,是為了提升網(wǎng)站的開發(fā)效率。最少的性能損耗,換取最大的開發(fā)效率
    2016-04-04
  • 淺析Yii2中GridView常見操作

    淺析Yii2中GridView常見操作

    本文是小編給大家收集整理些有關(guān)網(wǎng)絡(luò)上Yii2中GridView常見操作中出現(xiàn)的大部分問題,本文做一個總結(jié)特此分享到腳本之家平臺供大家參考
    2016-04-04
  • 淺談PHP中pack、unpack的詳細(xì)用法

    淺談PHP中pack、unpack的詳細(xì)用法

    這篇文章主要介紹了淺談PHP中pack、unpack的詳細(xì)用法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • YII2框架中分頁組件的使用方法示例

    YII2框架中分頁組件的使用方法示例

    這篇文章主要介紹了YII2框架中分頁組件的使用方法,結(jié)合實(shí)例形式詳細(xì)分析了YII2框架中分頁組件相關(guān)控制器、模型的創(chuàng)建及分頁實(shí)現(xiàn)方法,需要的朋友可以參考下
    2020-03-03
  • ThinkPHP框架實(shí)現(xiàn)的微信支付接口開發(fā)完整示例

    ThinkPHP框架實(shí)現(xiàn)的微信支付接口開發(fā)完整示例

    這篇文章主要介紹了ThinkPHP框架實(shí)現(xiàn)的微信支付接口開發(fā),結(jié)合完整實(shí)例形式詳細(xì)分析了基于thinkPHP框架的微信支付接口操作步驟、實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2019-04-04

最新評論