濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > PHP實(shí)現(xiàn)單例模式建立數(shù)據(jù)庫(kù)連接的方法分析

PHP實(shí)現(xiàn)單例模式建立數(shù)據(jù)庫(kù)連接的方法分析

熱門標(biāo)簽:騰訊外呼管理系統(tǒng) 山西回?fù)芡夂粝到y(tǒng) 青島語(yǔ)音外呼系統(tǒng)招商 岳陽(yáng)外呼型呼叫中心系統(tǒng)在哪里 河南電銷卡外呼系統(tǒng)哪家強(qiáng) 揚(yáng)州地圖標(biāo)注app 百應(yīng)電話機(jī)器人服務(wù) 山西探意電話機(jī)器人 昭通辦理400電話

本文實(shí)例講述了PHP實(shí)現(xiàn)單例模式建立數(shù)據(jù)庫(kù)連接的方法。分享給大家供大家參考,具體如下:

理解php單例模式

一、什么是單例

wiki百科:?jiǎn)卫J?,也叫單子模式,是一種常用的軟件設(shè)計(jì)模式。 在應(yīng)用這個(gè)模式時(shí),單例對(duì)象的類必須保證只有一個(gè)實(shí)例存在。 許多時(shí)候整個(gè)系統(tǒng)只需要擁有一個(gè)的全局對(duì)象,這樣有利于我們協(xié)調(diào)系統(tǒng)整體的行為。

二、為什么用單例

實(shí)際項(xiàng)目中像數(shù)據(jù)庫(kù)查詢,日志輸出,全局回調(diào),統(tǒng)一校驗(yàn)等模塊。這些模塊功能單一,但需要多次訪問(wèn),如果能夠全局唯一,多次復(fù)用會(huì)大大提升性能。這也就是單例存在的必要性。

三、單例模式的好處

1:減少頻繁創(chuàng)建,節(jié)省了cpu。

2:靜態(tài)對(duì)象公用,節(jié)省了內(nèi)存。

3:功能解耦,代碼已維護(hù)。

四、如何設(shè)計(jì)單例

通過(guò)上面的描述,單例的核心是,實(shí)例一次生成,全局唯一,多次調(diào)用。因此在單例模式必須包含三要素:

1:私有化構(gòu)造函數(shù),私有化clone。也就是不能new,不能clone?!疚ㄒ弧?/p>

2:擁有一個(gè)靜態(tài)變量,用于保存當(dāng)前的類。【唯一如何保存】

3:提供一個(gè)公共的訪問(wèn)入口?!究梢栽L問(wèn)】

五、建立數(shù)據(jù)庫(kù)連接

PS:功能上不太完整,以后再補(bǔ)充**__**

/**
 * 單例模式連接數(shù)據(jù)庫(kù)--面向?qū)ο?
 * */
//final關(guān)鍵字阻止此類被繼承
final class sql2
{
  static $instance;
  static $connect;
  protected $result;
  //protected關(guān)鍵字阻止此類在外部進(jìn)行實(shí)例化
  protected function __construct($host, $user, $password)
  {
    self::$connect = @new mysqli($host, $user, $password);
    if (self::$connect->connect_errno) {
      die(iconv('gbk', 'utf-8', self::$connect->connect_error) . '(' . self::$connect->connect_errno . ')');
    }
  }
  //protected關(guān)鍵字阻止此類在外部進(jìn)行克隆
  protected function __clone()
  {
  }
  //當(dāng)對(duì)象被銷毀時(shí)關(guān)閉連接
  function __destruct()
  {
    self::$connect->close();
  }
  //獲取實(shí)例
  static function getInstance($host, $user, $password)
  {
    self::$instance = self::$instance ?: new self($host, $user, $password);
    return self::$instance;
  }
  //選擇數(shù)據(jù)庫(kù)
  function set_db($db)
  {
    if (!self::$connect->select_db($db)) {
      die(iconv('gbk', 'utf-8', self::$connect->error) . '(' . self::$connect->errno . ')');
    }
  }
  //執(zhí)行SQL語(yǔ)句
  function query($query)
  {
    if (!($re = self::$connect->query($query))) {
      die(iconv('gbk', 'utf-8', self::$connect->error) . '(' . self::$connect->errno . ')');
    }
    $this->result = $re;
    return $re;
  }
  //以數(shù)組形式返回查詢結(jié)果
  function fetch_arr($query)
  {
    $re = $this->query($query);
    $res = [];
    while ($row = $re->fetch_assoc()) {
      $res[] = $row;
    }
    return $res;
  }
  //獲取記錄數(shù)
  function get_row()
  {
    return $this->result->num_rows;
  }
}
$ins = sql2::getInstance('127.0.0.1', 'root', 'root');
$ins->set_db('houtai');
$re = $ins->fetch_arr('select * from user ');
//var_dump($re);
$ins->get_row();

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • PHP連接MySQL數(shù)據(jù)庫(kù)三種實(shí)現(xiàn)方法
  • PHP連接SQL server數(shù)據(jù)庫(kù)測(cè)試腳本運(yùn)行實(shí)例
  • PHP連接MySQL數(shù)據(jù)庫(kù)操作代碼實(shí)例解析
  • 解決php用mysql方式連接數(shù)據(jù)庫(kù)出現(xiàn)Deprecated報(bào)錯(cuò)問(wèn)題
  • php pdo連接數(shù)據(jù)庫(kù)操作示例
  • PHP連接MySQL數(shù)據(jù)庫(kù)的三種方式實(shí)例分析【mysql、mysqli、pdo】
  • php連接mysql數(shù)據(jù)庫(kù)最簡(jiǎn)單的實(shí)現(xiàn)方法
  • thinkphp3.2同時(shí)連接兩個(gè)數(shù)據(jù)庫(kù)的簡(jiǎn)單方法
  • thinkPHP5框架實(shí)現(xiàn)多數(shù)據(jù)庫(kù)連接,跨數(shù)據(jù)連接查詢操作示例
  • 詳解PHP中的數(shù)據(jù)庫(kù)連接持久化

標(biāo)簽:宜賓 黃南 銅川 婁底 鎮(zhèn)江 南陽(yáng) 湛江 寶雞

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP實(shí)現(xiàn)單例模式建立數(shù)據(jù)庫(kù)連接的方法分析》,本文關(guān)鍵詞  PHP,實(shí)現(xiàn),單例,模式,建立,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP實(shí)現(xiàn)單例模式建立數(shù)據(jù)庫(kù)連接的方法分析》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于PHP實(shí)現(xiàn)單例模式建立數(shù)據(jù)庫(kù)連接的方法分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    佳木斯市| 冀州市| 东港市| 偏关县| 织金县| 股票| 玉屏| 那坡县| 闽清县| 温宿县| 始兴县| 奈曼旗| 陵水| 泸定县| 石家庄市| 龙州县| 广平县| 东辽县| 秦皇岛市| 吉林省| 苏尼特左旗| 吉木乃县| 城市| 施甸县| 莒南县| 南平市| 康保县| 遂宁市| 洪泽县| 昂仁县| 淮阳县| 连云港市| 屯昌县| 乐清市| 十堰市| 花莲县| 临澧县| 巨鹿县| 会同县| 西峡县| 当涂县|