我们在开发php的时候经常的要用到数据库的连接,但是数据库的连接一般是很好资源的,为此,可以设计单例模式,以此来保证数据库的连接是只是用一个,无 论你在那里要于数据库交互,这样就保证了应用程序的整体的性能比一般的模式优一点,在面向过程的习惯中很难的使用单例模式,当然这是对于习惯于面向对象的 变成人员来说的,如果使用过程变成的模式是完全可以的,之不过我们还是要设置全局的变量来保存数据库的连接,但是这样的华就会在我们的成语中有所限制,假 设你的 程序可能包含很多的文件,总的行数超过3000行或者是更多的华,你就要面对变量的问题而焦虑了,为此改用oo的方式还是很不错的选择,现在我就把我的实 现方式于大家分享,据提到你的应用可能还不可以,你可以作必要的修改一服和你的程序。现便是代码的实现。
欢迎你来批评。
<?php
/***************************************************************************
*   Copyright (C) 2007 by 耿鸿飞   *
*    ghf@localhost.localdomain   *
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*                                                                         *
*   This program is distributed in the hope that it will be useful,       *
*   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
*   GNU General Public License for more details.                          *
*                                                                         *
*   You should have received a copy of the GNU General Public License     *
*   along with this program; if not, write to the                         *
*   Free Software Foundation, Inc.,                                       *
*   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
***************************************************************************/
    define("DB_HOST","localhost");
    define("DB_USER","root");
    define("DB_PASS","");
    define("DB_NAME","test"):
   
    class DBConnect()
    {
        private static $DB;
        
        private function & getCon()
        {
            if(self: B == nuyll)
            {
                self: B = &mysql_connect(DB_HOST,DB_USER,DB_PASS) or die("连接数据库失败!");
                mysql_select_db(self: B,DB_NAME);
            }
            return self: B;
        }
        /*****************************************************************************
        *        insert or update data to database;
        *   
        */
        public upDate($sql)
        {
            return mysql_query($sql,this.getCon());            
        }
        /**************************************************************************************
        *  query data from database and return data that type is array
        */
        public query($sql)
        {
            $rs = mysql_query($sql,this.getCon());
            $rows = array();
            $i = 0;
            while($row = mysql_fetch_array($rs))
            {
                rows[$i] = $row;
                $i++;
            }
            mysql_free_result($rs);
            return $rows;
        }
        /********************************************************************
        *   query database and return data rows;
        */
        public query_num_rows($sql)
        {
            $rs = mysql_query($sql,this.getCon());
            return mysql_num_row($rs);
        }
        /*******************************************************************
        *  close dbconnection;
        */
        public colse()
        {
            mysql_colse(this.getCon());
            self: B = null;
        }
    }
?>
换成:D

php实现的单例模式相关推荐

  1. Java单例模式个人总结(实例变量和类变量)

    Java单例模式 背景知识:Static关键字. 在对于定义类的变量,分为两种,是否具有static修饰的变量: 没有static修饰的变量,通过类的实例化(对象)引用,改变量称为实例变量: 使用st ...

  2. GOF23设计模式(创建型模式)单例模式

    目录: 一:单例模式的核心作用.常见应用场景 二:五种单例模式及其实现 三:关于反射和反序列化破解单例模式的漏洞,以及相应的解决方案 四:测试五种单例模式的效率 一:核心作用及常见应用场景: 核心作用 ...

  3. Java设计模式:单例模式

    学而时习,稳固而之心, 好久没有复习java的知识了,今天有空温习了单例模式,这里记录一下 单例模式是常见的设计模式的一种,其特点就是 指一个类只有一个实例,且该类能自行创建这个实例  , 保证一个类 ...

  4. [Python设计模式] 第21章 计划生育——单例模式

    github地址:https://github.com/cheesezh/python_design_patterns 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式 ...

  5. Python 精选笔试面试习题—sorted 与 sort 单例模式、统计字符个数Count、垃圾回收、lambda函数、静态方法、类方法、实例方法、分布式锁、

    1. 字典根据键从小到大排序? In[38]: dic = {"name": "Tom", "age": 30, "country ...

  6. 单例模式的两种实现方式对比:DCL (double check idiom)双重检查 和 lazy initialization holder class(静态内部类)...

    首先这两种方式都是延迟初始化机制,就是当要用到的时候再去初始化. 但是Effective Java书中说过:除非绝对必要,否则就不要这么做. 1. DCL (double checked lockin ...

  7. 基础设计模式:单例模式+工厂模式+注册树模式

    单例模式: 通过提供自身共享实例的访问,单例设计模式用于限制特定对象只能被创建一次. 使用场景: 一般数据库实例都会用单例模式 实现: 单例设计模式就是要一个类只能实例化一个对象. 要想让一个类只能实 ...

  8. 设计模式——单例模式(Singleton)

    保证一个类仅有一个实例,并提供一个访问它的全局访问点.--DP UML类图 模式说明 个人认为单例模式是所有设计模式中最为简单的一个模式,因为实现这个模式仅需一个类,而不像其他模式需要若干个类.这个模 ...

  9. 设计模式 之美 -- 单例模式

    为什么要使用单例? 一个类只允许创建一个对象或者实例. 背景简介:使用多线程并发访问同一个类,为了保证类的线程安全,可以有两种方法: 将该类定义为单例模式,即该类仅允许创建一个实例 为该类的成员函数添 ...

  10. 【C++】C/C++ 中的单例模式

    目录 part 0:单例模式3种经典的实现方式 Meyer's Singleton Meyers Singleton版本二 Lazy Singleton Eager Singleton Testing ...

最新文章

  1. Python培训教程分享:Python异常机制
  2. 如何优雅安全地在深层数据结构中取值
  3. 广播搜寻服务器的动态IP
  4. Crawler:基于requests库+urllib3库+伪装浏览器实现爬取抖音账号的信息数据
  5. python 消息队列 sqlite_sqlite 数据存储 消息队列
  6. java hashmap object_Java中的大量Object(使用HashMap)
  7. python的读取纯文本文件的几种模式
  8. 计算机网络部分简答题
  9. 分享一个基于jQuery,backbone.js和underscore.js的消息提示框架 - Backbone.Notifier
  10. java循环标号_java 标号 break 自循环
  11. 使用WebView监控网页加载状况,PerformanceMonitor,WebViewClient生命周期
  12. markdown使用模板(供自己方便使用)
  13. QT入门-可视化UI设计
  14. vue+vant(有赞)ui直传阿里oss
  15. git lab提交记录中有 merge branch ‘xxx‘ of of http:xxx into xxx
  16. html中图像标记的属性,HTML中的图象标签属性
  17. 各地发布防病提示,秋冬不注意腹泻来敲门
  18. 淘宝京东APP节日更新布局 实现方式
  19. 【ZZULIOJ】1008: 美元和人民币
  20. Python爬取惠农网,看看农产品价格如何

热门文章

  1. 协方差及协方差矩阵的理解
  2. MySQL数据库——检索数据
  3. Win8输入法不见了怎么办
  4. 嵌入式ARM设计编程(一) 简单数据搬移
  5. 计算机主机箱连接线路,怎样连接电脑所有配件? 电脑主机与显示器接线安装步骤...
  6. 网上书城 springboot vue前后端分离
  7. Grubbs检验离群值——循环算法求出多个离群值
  8. C# 鼠标悬浮mouseHover事件的添加 实现鼠标悬浮在按钮或者控件 显示相关的帮助信息
  9. 微软亚洲研究院院长:“中国不妨引进科技外援”
  10. Datatype LP64 ILP64 LLP64 ILP32 LP32