前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >PHP实现单例连接MySQL

PHP实现单例连接MySQL

作者头像
素浅
发布于 2020-12-18 07:48:17
发布于 2020-12-18 07:48:17
7.7K00
代码可运行
举报
文章被收录于专栏:程序媛生涯程序媛生涯
运行总次数:0
代码可运行

单例模式的定义:保证一个类只有一个实例,并提供一个访问它的全局访问点。这就意味着这个类只实例化一次,并做好防止外部再次实例化的措施,比如克隆私有化,构造函数私有化,还要把实例化好的资源保存起来,供外部使用。

这样做的目的是减少内存的消耗,因为每实例化一次就会消耗一次内存。

单例模式连接MySQL

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
    
class Db {
    // static 全局化变量,永久保存,供全局使用
    private static $_instance;
    private static $_dbConnect;
    //保存数据库的配置信息
    private $_dbConfig = array(
        'host' => '127.0.0.1',
        'user' => 'cddata',
        'password' => 'cddata',
        'database' => 'cddata',
    );

    //使用private防止用户new
   private function __construct(){}

    //重写clone防止用户进行clone
   public function __clone(){
        //当用户clone操作时产生一个错误信息
        die("不能克隆".mysql_error());
    }    

    //由类的自身来进行实例化
   public static function getInstance(){
        if(!(self::$_instance instanceof self)){
            self::$_instance = new self();
        }
        return self::$_instance;
    }

    public function connect(){
        self::$_dbConnect = @mysql_connect($this->_dbConfig['host'],
            $this->_dbConfig['user'],$this->_dbConfig['password']);

        if(!self::$_dbConnect){
            die("数据库连接出错".mysql_error());
        }
        // 设置编码
        mysql_query("SET NAMES UTF8");
        // 连接数据库
        mysql_select_db($this->_dbConfig['database'],self::$_dbConnect);
        return self::$_dbConnect;
    }
}

测试数据库连接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$res = Db::getInstance();
var_dump($res);

END

技术以内 | 技术以外

技术栈 | 小感悟

效率工具 | 必备技能

你的效率有多高,决定你能跑多快

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序媛生涯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PHP全栈学习笔记5
php与mysql数据库,PHP支持很多数据库,与mysql为牛逼组合,mysql数据库的基础知识的掌握是由必要的,要了解如何操作mysql数据库,数据表的方法。
达达前端
2019/07/03
1.6K0
PHP全栈学习笔记5
php init()和__construct() 区别
__construct(): 是PHP内置的构造函数,实例化之前 PHP 解析引擎自动调用,做一些初始化的工作或者外部服务器检测的工作。在实例化对象之前需要做的工作都写在这里
solate
2019/07/22
4.3K0
PHP八大设计模式
getInstance()方法必须设置为公有的,必须调用此方法 以返回实例的一个引用
如梦初醒_-
2022/10/24
7901
鸡肋的PHP单例模式
单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统PHP
Java架构师必看
2021/03/22
8630
PHP连接MYSQL数据库
执行SQL语句 使用 mysql_query() 函数。此函数用于向 MySQL 连接发送查询或命令 例子 在下面的例子中,我们创建了一个名为 "my_db" 的数据库:
叫我可儿呀
2019/12/05
28.4K0
开发产品的场景中,你所知道的设计模式有哪些?
策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。
李昂君
2021/12/24
5260
开发产品的场景中,你所知道的设计模式有哪些?
PHP八大设计模式「建议收藏」
总结:通过以上代码,可以看到,在不同的命名空间下,可以有相同的类名或者方法名。
全栈程序员站长
2022/09/17
4250
PHP八大设计模式「建议收藏」
PHP-封装MySQL的单例
3、为了保证代码的可重用性,一个方法只实现一个功能,所以初始化参数和连接数据库分到两个方法中。
cwl_java
2022/11/30
9820
工厂模式、单例模式、策略模式、适配器模式、观察者模式的原理和使用详解
✨ 工厂模式 工厂模式的原理 作用: 就是你只要传你需要的类进去,你就能得到他的实例化对象 其实工厂就是帮你实例化你所需要的类 <?php /** * 工厂类 */ class factory {
江户川码农
2022/07/12
1.3K2
工厂模式、单例模式、策略模式、适配器模式、观察者模式的原理和使用详解
PHP中常用的设计模式
应用场景:一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理逻辑。当更新的逻辑增多之后,代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑需要修改事件主体的代码。
南山竹
2024/06/26
1090
PHP中常用的设计模式
【精选】面试官:聊下常见设计模式有哪些?
单例模式解决的是如何在整个项目中创建唯一对象实例的问题,避免重复创建(实例化) 对象,已经有现成的实例就用现成的。减少资源的浪费(因为创建多个实例,浪费内存, 完全没必要),单件模式保证了每时每刻引用的都是同一个实例。最常用的地方是数据库连接。
码农编程进阶笔记
2022/04/08
1.1K0
PHP面向对象的设计模式-单例模式(二)
下面我们将通过一个具体的示例来演示单例模式的实现方法。假设我们有一个名为 Database 的类,用于连接数据库。该类的实例应该只能够被创建一次,并且应该可以被全局访问。我们可以使用单例模式来实现这个要求。代码示例如下:
堕落飞鸟
2023/04/28
3870
PHP表单数据写入MySQL代码
参考:http://www.cnblogs.com/roucheng/p/phpmysql.html
全栈程序员站长
2022/07/15
9890
在PHP中使用MySQL Mysqli操作数据库 ,以及类操作方法
先来操作函数部分,普遍的MySQL 函数方法,但随着PHP5的发展,有些函数使用的要求加重了,有些则将废弃不用,有些则参数必填...
书童小二
2018/09/03
4.2K0
php设计模式(六):单例模式(Singleton)
生成器模式又称为:单件模式、Singleton。单例模式是一种创建型设计模式,让你能够保证一个类只有一个实例,并提供一个访问该 实例的全局节点。
陈大剩博客
2023/04/17
7951
php设计模式(六):单例模式(Singleton)
PHP全栈学习笔记17
打开C:\wamp\apps\phpmyadmin3.5.1下的配置文件:config.inc
达达前端
2019/07/03
2.3K0
PHP全栈学习笔记17
相关推荐
PHP全栈学习笔记5
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档