单例模式创建数据库封装类

 '127.0.0.1', //主机名称
        'port' => '3306',  //默认端口
        'user' => 'root',  //用户名
        'pass' => '123456',  //密码
        'charset' => 'utf8', //默认字符集
        'dbname' => 'study',  //默认数据库
    );

	//采用单例模式私有化防止外部实例化
	private	function __construct($param)
	{
        //初始化连接参数
        $this->dbConfig = array_merge($this->dbConfig,$param);
        //链接数据库
        $this->connect();
	}

	//禁止外部克隆
	private function __clone(){

	}

	// 获取当前类的单一实例
	public static function getInstance($param){
		if(!self::$instance instanceof self){
		    self::$instance = new self($param);
        }
        return self::$instance;
	}

    //数据库链接
    private  function  connect(){
	        //配置数据源
            $this->conn = new mysqli($this->dbConfig['host'],$this->dbConfig['user'],$this->dbConfig['pass'],$this->dbConfig['dbname']);
            $this->conn->query("SET NAMES {$this->dbConfig['charset']}");
            if($this->conn->connect_error){
            	die("连接失败: " . $this->conn->connect_error);
            }
    }

    //完成数据表的写操作:新增,更新,删除
   public function exec($sql){
   	return mysqli_query($this->conn,$sql);
   }

   //查询单条数据
   public function find($sql){
   		$result = mysqli_query($this->conn,$sql);
   		return mysqli_fetch_array($result);
   }


    //查询所有数据
    public function select($sql){
    	$result = mysqli_query($this->conn,$sql);
	    	while($row= mysqli_fetch_array($result)){
	        	$data[] = $row;
	    	}
	    return $data;
    }


}

?>

 

你可能感兴趣的:(单例模式创建数据库封装类)