一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP實現單例模式建立數據庫連接的方法分析

PHP實現單例模式建立數據庫連接的方法分析

2021-09-29 13:31Karagrade PHP教程

這篇文章主要介紹了PHP實現單例模式建立數據庫連接的方法,結合實例形式分析了PHP單例模式的概念、原理及使用單例模式實現數據庫連接的相關操作技巧,需要的朋友可以參考下

本文實例講述了PHP實現單例模式建立數據庫連接的方法。分享給大家供大家參考,具體如下:

理解php單例模式

一、什么是單例

wiki百科:單例模式,也叫單子模式,是一種常用的軟件設計模式。 在應用這個模式時,單例對象的類必須保證只有一個實例存在。 許多時候整個系統只需要擁有一個的全局對象,這樣有利于我們協調系統整體的行為。

二、為什么用單例

實際項目中像數據庫查詢,日志輸出,全局回調,統一校驗等模塊。這些模塊功能單一,但需要多次訪問,如果能夠全局唯一,多次復用會大大提升性能。這也就是單例存在的必要性。

三、單例模式的好處

1:減少頻繁創建,節省了cpu。

2:靜態對象公用,節省了內存。

3:功能解耦,代碼已維護。

四、如何設計單例

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

1:私有化構造函數,私有化clone。也就是不能new,不能clone。【唯一】

2:擁有一個靜態變量,用于保存當前的類。【唯一如何保存】

3:提供一個公共的訪問入口。【可以訪問】

五、建立數據庫連接

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/**
 * 單例模式連接數據庫--面向對象
 * */
//final關鍵字阻止此類被繼承
final class sql2
{
  static $instance;
  static $connect;
  protected $result;
  //protected關鍵字阻止此類在外部進行實例化
  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關鍵字阻止此類在外部進行克隆
  protected function __clone()
  {
  }
  //當對象被銷毀時關閉連接
  function __destruct()
  {
    self::$connect->close();
  }
  //獲取實例
  static function getInstance($host, $user, $password)
  {
    self::$instance = self::$instance ?: new self($host, $user, $password);
    return self::$instance;
  }
  //選擇數據庫
  function set_db($db)
  {
    if (!self::$connect->select_db($db)) {
      die(iconv('gbk', 'utf-8', self::$connect->error) . '(' . self::$connect->errno . ')');
    }
  }
  //執行SQL語句
  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;
  }
  //以數組形式返回查詢結果
  function fetch_arr($query)
  {
    $re = $this->query($query);
    $res = [];
    while ($row = $re->fetch_assoc()) {
      $res[] = $row;
    }
    return $res;
  }
  //獲取記錄數
  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();

希望本文所述對大家PHP程序設計有所幫助。

原文鏈接:https://blog.csdn.net/coco1118/article/details/101347908

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99国产高清久久久久久网站 | 免费xxxxx大片在线观看影视 | 免费看隐私美女 | 日本网络视频www色高清免费 | 欧美激情影音先锋 | 欧美另类变态 | 国产精品福利在线观看秒播 | 亚洲欧美日韩精品高清 | 福利视频一区二区三区 | 公交车强校花系列小说 | 亚洲精品成人a | 国产精品久热 | 东北老女人91p0rny | 教师系列 大桥未久在线 | 欧美精品成人a多人在线观看 | 97久久天天综合色天天综合色hd | 息与子中文字幕bd | 好吊日在线 | 我将她侵犯1~6樱花动漫在线看 | 香蕉视频在线观看网站 | 亚洲国产成人精品无码区99 | 欧美专区亚洲 | 别停好爽好深好大好舒服视频 | 精品四虎国产在免费观看 | 亚洲福利一区二区精品秒拍 | 网站色小妹 | 91精品国产91久久久久久 | 亚洲狠狠婷婷综合久久蜜桃 | 精品无码一区在线观看 | 天天综合天天色 | 97综合久久 | 奇米小说| 久久99国产综合精品AV蜜桃 | 国产区成人综合色在线 | 五月激激激综合网色播免费 | 污污在线免费观看 | 国产成人在线小视频 | 欧亚专线欧洲m码可遇不可求 | 日韩精品免费一区二区 | 精油按摩日本 | a级片在线观看免费 |