建立数据库访问类的封装
<?php
 
class DBDA
{
    public $host = "localhost"; //服务器地址
    public $uid = "root"; //数据库的用户名
    public $pwd = ""; //数据库的密码
    public $dbname = "";//数据库名
     
    //执行SQL语句,返回相应结果的函数
    //$sql是要执行的SQL语句
    //$type是SQL语句的类型,0代表增删改,1代表查询
    //$db代表要操作的数据库
    public function Query($sql,$type=1,$db="xm_youxiang")
    {
        //造连接对象
        $conn = new MySQLi($this->host,$this->uid,$this->pwd,$db);
         
        //判断连接是否成功
        !mysqli_connect_error() or die("连接失败!");
         
        //执行SQL语句
        $result = $conn->query($sql);
         
        //判断SQL语句类型
        if($type==1)
        {
            //如果是查询语句返回结果集的二维数组
            return $result->fetch_all();
        }
        else
        {
            //如果是其他语句,返回true或false
            return $result;
        }
    }
单例模式连接数据库封装类

单例模式有三大原则:

构造函数不能为public

有一个保存实例的静态成员变量

拥有访问这个实例的公共静态方法

基于单例模式的PHP数据库连接类:

class DB{
    static private $a;  //实例变量
    static private $b;  //
    private $dbquery = array(
        'host' => 'localhost',
        'uid' => 'root',
        'password' => '',
        'dbname' =>'数据库名',
    );
    private function __construct(){

}
    static public function show(){
        if(!(self::$a aof self)){
            self::$a = new self();
        }
        return self::$a;
    }

public function connect(){
        if(!self::$b){
            self::$b = mysql_connect($this->dbquery['host'],$this->dbquery['uid'],$this->dbquery['password']);
            if(!self::$b){
                die('mysql error'.mysql_error());
            }

//mysql_select_db($this->dbquery['dbname'],self::$b);
           //mysql_query("set names UTF8",self::$b);
        }
        return self::$b;
    }
}

使用时直接实例化
eg:$connect = DB::show()->connect();
 

关于PHP建立数据库访问类的封装以及操作php单例模式连接数据库封装类的更多相关文章

  1. C# 核心语法-反射(反射类型、方法、构造函数、属性,实现可配置可扩展,完成数据库访问类反射封装)

    反射是.NET中的重要机制,通过反射,可以在运行时获得程序或程序集中每一个类型(包括类.结构.委托.接口和枚举等)的成员和成员的信息.有了反射,即可对每一个类型了如指掌.另外我还可以直接创建对象,即使 ...

  2. C#—反射(反射类型、方法、构造函数、属性、实现可配置可扩展、数据库访问类反射封装)

    反射是.NET中的重要机制,通过反射,可以在运行时获得程序或程序集中每一个类型(包括类.结构.委托.接口和枚举等)的成员和成员的信息.有了反射,即可对每一个类型了如指掌.另外我还可以直接创建对象,即使 ...

  3. 一个通用数据库访问类(C#,SqlClient)

    本文转自:http://www.7139.com/jsxy/cxsj/c/200607/114291.html使用ADO.NET时,每次数据库操作都要设置connection属性.建立connecti ...

  4. 我也来写:数据库访问类DBHelper

    一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...

  5. 我也来写:数据库访问类DBHelper(转)

    一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...

  6. 学习实践:使用模式,原则实现一个C++数据库访问类

    一.概述 在我参与的多个项目中,大家使用libMySQL操作MySQL数据库,而且是源码即复用,在多个项目中有多套相同或相似的源码,这样的复用方式给开发带来了不变,而且libMySQL的使用比较麻烦, ...

  7. 基于SqlSugar的数据库访问处理的封装,支持.net FrameWork和.net core的项目调用

    由于我们有时候需要在基于.net framework的项目上使用(如Winform端应用),有时候有需要在.net core的项目上使用(如.net core的WebAPI),那么我们把基于SQLSu ...

  8. 基于SqlSugar的数据库访问处理的封装,在.net6框架的Web API上开发应用

    我前面几篇随笔介绍了关于几篇关于SqlSugar的基础封装,已经可以直接应用在Winform项目开发上,并且基础接口也通过了单元测试,同时测试通过了一些Winform功能页面:本篇随笔继续深化应用开发 ...

  9. DataAccess通用数据库访问类,简单易用,功能强悍

    以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展dat ...

随机推荐

  1. urls 管理

    问题阐述:如何管理多个app下的路由分发,使得管理更加清晰? 1. 在app下创建urls.py文件 from django.conf.urls import url from django.urls ...

  2. A1018. Public Bike Management

    There is a public bike service in Hangzhou City which provides great convenience to the tourists fro ...

  3. 【洛谷P1903】数颜色

    题目大意:给定一个长度为 N 的序列,每个点有一个颜色.现给出 M 个操作,支持单点修改颜色和询问区间颜色数两个操作. 题解:学会了序列带修改的莫队. 莫队本身是不支持修改的.带修该莫队的本质也是对询 ...

  4. 第三十六篇-FloatingActionButton的使用

    效果图: 准备两张图片,一张作为桌面背景,一张作为那个悬浮的加号.放在mipmap下面. 首先,添加Imageview作为桌面背景,并设置扩充整个屏幕.接着,添加一个悬浮按钮,放在右下角,可以对悬浮按 ...

  5. R语言:提取路径中的文件名字符串(basename函数)

    假设存在路径C:/coverage/Homo_sapiens.sort.add_exon1_coverage.txt,欲提取Homo_sapiens.sort.add_exon1_coverage.t ...

  6. Day23--Python--常用模块02--序列化,configparser

    1. 序列化 把对象打散成bytes或者字符串. 方便存储和传输 序列化 把bytes或者字符串转换回对象. 反序列化 2. pickle(比较重要) 把python中所有的对象都可以转化成bytes ...

  7. postman 测试套件collection

    测试套件collection就是为了跑一套case,整体的一套case,为了解决一个一个的case单独跑 1.点击小加号 2.填写套件的名字 3.右键增加folder,一个folder里面可以增加多个 ...

  8. 漫谈php框架之中间件

    市面上常见的php框架有很多,最近因为有技术需求,所以对常见的php框架的中间件进行了一些了解.各个框架尽管在目标上对php框架的定义大同小异,但是在实现方式上却各有不同,且看下文: 定义 首先什么是 ...

  9. shiro:hasPermission 标签 :验证当前用户是否拥有指定权限

    1.这些值是存在数据库里的,在哪里找呢?sys_menu 中的permission列. <shiro:hasPermission name="cms:article:edit" ...

  10. node.js(小案例)_使用mongodb对学生信息列表优化

    一.前言 1.这篇文章主要对上一篇案列在操作增删改的时候使用mongodb进行优化 2.项目源码(包含上):https://github.com/4561231/crud-express-node.g ...