zoukankan      html  css  js  c++  java
  • php设计模式之单例模式实例(设计mysqli连接数据的数据处理类)

    一直在研究php的设计模式,但是没有亲历使用过,所以还是一知半解,通过几天的学习终于对php的单例设计模式稍稍的有些了解,特此写出一个数据库处理类(只涉及到简单的原理),以便自己以后方便查阅,至于其他设计模式我会慢慢理解,然后会以实例的形式发布到该博客:

    /**
     * 单例模式
     */
    class Db{
        private static $mysqli;//该类中的唯一一个实例
        private function __construct(){}//防止在外部实例化该类
        private function __clone(){}//禁止通过复制的方式实例化该类
        public static function connect(){//数据库连接方法
            self::$mysqli = new MySQLi("localhost","root","","test");
            self::$mysqli->query("set names utf8");
        }
        public static function select($table){//数据库操作方法,后续可以继续完善和添加......
            self::connect();
            $result = self::$mysqli->query("select * from ".$table);
            $result_arr = array();
            while($query = $result->fetch_assoc()){
                $result_arr[]    = $query;
            }
            return $result_arr;//结果集以数组的形式返回
        }
    }
    $result = Db::select("article");
    echo '<pre>';
    print_r($result);
    echo '</pre>';

     还有第二种写法:如下

    class Db{
        private static $_instance = null;//该类中的唯一一个实例
        private $dbConn;
        private function __construct(){//防止在外部实例化该类
            $this->dbConn = new MySQLi("localhost","root","","test");
            $this->dbConn->query("set names utf8");
        }
        private function __clone(){}//禁止通过复制的方式实例化该类
            
        public static function getInstance(){
            if(self::$_instance == null){
                self::$_instance = new self();    
            }
            return self::$_instance;
        }
        
        public function select($table){//数据库操作方法,后续可以继续完善和添加......
            $result = $this->dbConn->query("select * from ".$table);
            $result_arr = array();
            while($query = $result->fetch_assoc()){
                $result_arr[]    = $query;
            }
            return $result_arr;//结果集以数组的形式返回
        }
    }
    $db = Db::getInstance();
    $result = $db->select('article');
    echo '<pre>';
    print_r($result);
    echo '</pre>';
    If the copyright belongs to the longfei, please indicate the source!!!
  • 相关阅读:
    DS博客作业02--线性表
    DS博客作业01--日期抽象数据类型设计与实现
    C语言博客作业06--结构体&文件
    C语言博客作业05--指针
    C语言博客作业04--数组
    DS博客作业8——课程总结
    DS博客作业07——查找
    DS博客作业06--图
    DS博客作业——树
    DS博客作业03--栈和队列
  • 原文地址:https://www.cnblogs.com/longfeiPHP/p/5395514.html
Copyright © 2011-2022 走看看