PHP单例模式链接数据库单例模式接口验证详解

一、什么是单例模式?

什么是单例模式?

根据这个名称,我们很容易了解到,单例模式指的是在整个应用中只有一个对象实例的设计模式。

为什么要用单例模式?

php常常和数据库打交道,如果在应用中如果频繁建立连接对象,进行new操作的话,会消耗大料的系统内存资源,这并不是我们希望看到的。再则,在团队合作项目中,单例模式可以有效避免不同程序员new自己的对象,造成人为的系统消耗。

二、使用步骤

1.编写DB类文件

代码如下(示例):

<?php
header("content-type:text/html;charset=utf-8");
class Db{
    //私有静态属性
    static private $_instance;
    static private $_connectSource;
    //配置数据
    private $_dbConfig = array(
        'host' => '地址',
        'user' => '账号',
        'password' => '密码.',
        'database' =>'数据库',
    );
    /**
     * @Notes:构造方法
     * @Author: Kevin
     * @Wx: mx216972
     * @Time: 2021/12/28 10:05
     */
    private function __construct(){

    }
    /**
     * @Notes:私有克隆 防止多次New
     * @Author: Kevin
     * @Wx: mx216972
     * @Time: 2021/12/28 10:06
     */
    private function __clone(){

    }
    /**
     * @Notes:公用的静态方法
     * @Author: Kevin
     * @Wx: mx216972
     * @Time: 2021/12/28 10:10
     */
    static public function getInstance(){
        if(!(self::$_instance instanceof self)){
            self::$_instance = new self();
        }
        return self::$_instance;
    }
    /**
     * @Notes:链接数据库
     * @Author: Kevin
     * @Wx: mx216972
     * @Time: 2021/12/28 10:02
     */
    public function connect(){
        if(!self::$_connectSource){
            self::$_connectSource = mysql_connect($this->_dbConfig['host'],$this->_dbConfig['user'],$this->_dbConfig['password']);
            if(!self::$_connectSource){
                die('mysql error'.mysql_error());
            }

            mysql_select_db($this->_dbConfig['database'],self::$_connectSource);
            mysql_query("set names UTF8",self::$_connectSource);
        }
        return self::$_connectSource;
    }

    /**
     * 执行语句
     * @param
     * @return string or int
     */
    public function query($sql){
        $query=mysql_query($sql);
        return $query;
    }
    /**
     * 查询某个字段
     * @param
     * @return string or int
     */
    public function getOne($sql){

        $query=$this->query($sql);

        return mysql_result($query,0);
    }

}



?>

2.使用例子

代码如下(示例):

<?php
    /**
     * @Notes:查询数据/Demo
     * @Author: Kevin
     * @Wx: mx216972
     * @Time: 2021/12/28 10:31
     */
   //引入类文件
    include './Db.php';
    //实例化类方法链接数据库
    $Db = Db::getInstance();
	$connect = $Db->connect();
    $userid = 1;
    $sql = 'select sum(id) as kqdays  from admin where userid='.$userid;
    $sumDay = $Db->getOne($sql);
    var_dump($sumDay);die;

?>

总结

什么是单例模式?

根据这个名称,我们很容易了解到,单例模式指的是在整个应用中只有一个对象实例的设计模式。

为什么要用单例模式?

php常常和数据库打交道,如果在应用中如果频繁建立连接对象,进行new操作的话,会消耗大料的系统内存资源,这并不是我们希望看到的。再则,在团队合作项目中,单例模式可以有效避免不同程序员new自己的对象,造成人为的系统消耗。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凯文..Kevin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值