业界动态
PHP封装数据库操作类
2024-10-31 21:54
  • 封装数据库操作类
  • 因为目前所使用的mysqli扩展实现数据库的操作还比较零散,如果想要高效的使用,就必须要进行二次加工
  • 在面向对象编程中,所有操作都应该是由类来实现完成
  • 封装的完整程度是根据业务的需求来定
  • 步骤

    PHP封装数据库操作类

    1、确定要封装的业务:基于mysqli的数据库底层实现,完成数据库操作的基本诉求

  • 简化初始化操作
  • 实现错误处理
  • 实现增删改查
  • 2、明确封装的类的作用,确定内部实现机制

  • 方法独立性:一个方法只做一件事情
  • 方法独立性:方法只负责执行,不对结果进行任何处理,交由外部调用处判定
  • 灵活性:封装的所有操作应该是灵活的,不是写死的内容
  • 3、根据思路明确封装类的数据和数据操作

  • 数据使用属性保留:数据需要跨方法或者对外提供数据支持
  • 数据库操作的数据:主机地址、端口、用户名、密码、数据库名字、字符集
  • 数据库连接资源跨方法:连接资源
  • 错误信息对外数据支持:错误信息、错误编号
  • 数据操作具体功能
  • 初始化资源工作:构造方法,实现属性初始化
  • 初始化数据库资源:实现数据库的连接认证、字符集设置和数据库选择:失败返回false并记录错误
  • SQL指令语法检查:SQL执行并完成错误处理:失败返回false并记录错误
  • 写操作:实现增伤改指令的执行:调用SQL指令语法检查,成功返回受影响行数
  • 自增长ID获取:实现自增长id获取
  • 读操作:单记录获取和多记录获取:调用SQL指令语法检查
  • 4、确定类的控制

  • 不需要外部访问和使用的私有
  • 明确外部需要用到的公有
  • 如果数据安全性要求高,那么可以属性私有,但是允许对外提供可以操作的公有方法(内部安全处理)
  • 示例

    1、一个类通常就是一个文件,所以要先确定文件的名字:通常类文件命名规范有两种

  • 文件名字与类名字一样,如Sql.php
  • 为了区分普通PHP文件,增加中间类描述,如Sql.class.php
  • 现在PHP几乎都是面向对象编程,所以通常采用第一种方式:因此当前命名数据类的文件为:Sql.php
  • 2、确定类文件名字后其实也就确定了类名字,因此可以创建一个Sql类

    3、类的创建分两种:一是特定使用,即类里面的所有内容只为某次使用;二是通用,即工具类,以后很多地方可以用。

  • 特定使用,功能可以不用太灵活
  • 通用工具,功能应该大众化,数据的变化会比较多
  • 数据库类以后凡是要操作数据库的地方都可以用得到,很多项目都会用到,所以应该是个通用工具类,因此要考虑其到处可用的特性,让其能够灵活

    4、数据库的操作最基本的特性不会改变:即需要连接认证,而连接认证的信息是灵活的,所以可以通过设定属性来控制,这些信息也都是不同使用者不同的,应该可以改变,所以可以通过构造方法来实现数据传入

    注意:方法设定的原则是一个方法只实现一个简单的功能,不要多个功能堆积到一个方法中。

    5、数据库属性会在实例化Sql对象的时候自动初始化

    6、数据库要操作的第一件事就是连接认证,所以需要一个连接认证的功能。这里可以使用mysqli面向过程的方法。但是需要建立一个方法来实现连接认证:连接是否成功?

    7、连接认证包括数据库选择设定好后,此时还存在一个细节问题:字符集,为了保证数据库连接的正常操作,需要新增一个方法设定字符集

    8、初始化完成后,可以实现具体的业务处理:所有的SQL都需要使用mysqli_query执行,也都可能产生错误,因此封装一个专门执行SQL并检查错误的方法

    9、上述功能本质也可以是一个写操作(不完整),但是写操作是有业务性的:返回受影响的行数,因此独立增加一个写操作方法,调用上述方法实现,并根据结果返回受影响的行数

    10、写操作中可能会有新增需求,因此也对外提供一个获取自增长Id的方法

    11、读取操作:读取一条记录(利用check进行SQL执行和错误检查):读取一条数据可能需要获取当前查询结果的列数,增加属性保留

    12、读取操作:读取多条记录:可能需要知道总的记录数以及查询结果的列数

    13、用户在使用Sql类的时候,必须要进行第一步实例化、然后连接认证和实现字符集设置。这样的话用户操作比较麻烦,应该是用户实例化Sql类就可以直接进行相应的业务处理:所以可以将连接认证、字符集设置在初始化方法中实现(构造方法)

    14、确定类的控制:不需要外部访问的私有,需要外部访问的公有,重要的数据私有并增加公有操作方法进行安全控制

    14、测试:利用数据库类实现数据库的写操作和读操作

    小结

    1、类的封装是以功能驱动为前提,相关操作存放到一个类中

    2、一个类通常是一个独立的文件,文件名与类名相同(方便后期维护和自动加载)

    3、类中如果有数据需要管理,设定属性

    4、类中如果有功能需要实现(数据加工),设定方法

    5、一个功能通常使用一个方法实现,方法的颗粒度应该尽可能小(方便复用)

    6、应该尽可能增加类对成员的控制:即能私有尽可能私有

    7、类中需要实现的功能应该由具体的业务来实现支撑

  • 实用类:只考虑当前业务,不考虑全面性(代码少,应用范围小)
  • 工具类:全面综合考虑,尽可能多的封装可能存在的业务(代码多,应用范围广)
  •     以上就是本篇文章【PHP封装数据库操作类】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/4010.html 
         资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多   
    最新新闻
    “撒旦”人血鞋?碰瓷新疆棉花的耐克,又开始喊冤了?
    继主动碰瓷新疆棉花把自己搞得股价大跌之后耐克秉承着“no zuo no die”的精神又开始暗搓搓搞“阴间操作”限量发售含人血的“撒
    tiktok怎么搭建外网 详细教程及步骤
    TikTok怎么搭建外网(详细教程及步骤)TikTok是一款非常流行的短视频社交应用程序,它在全球范围内拥有数亿用户。在使用TikTok的
    《以案释法》步数越多,收益越高?别被“走路也能赚钱”的理财广告忽悠了
      走路也能赚到钱的理财  “丑的人还在睡觉,美的人已经跑出一杯星巴克了。”2016年的一天,一个女孩晒出的朋友圈截图引起了
    如何用生意参谋算出同行店铺真实销售额
    怎么经过生意顾问算出同行店肆实在销售额?大多数在淘宝天猫工作过的人都知道,他们的背景显现了同行商铺的买卖数据,这被称为买
    一款最近比较火的网站统计分析系统,易分析具有什么样的功能呢?
    一、产品简介北京普艾斯科技有限公司成立于2009年,服务客户1000+,包括电商、金融、保险、政务服务等行业。私有化部署,全渠道
    向佐快乐大本营2024年精彩回顾:四年时光共欢笑
    张大大谢娜力捧下的综艺新星张大大一位在娱乐圈中颇具人气的主持人他的成名之路离不开谢娜的提携回顾张大大的成名之路可以说谢娜
    PingTools app
    《PingTools app》是一款非常好用的实用工具软件,软件内拥有丰富的功能,包含了包括浏览器扫描等。使用非常简单,直接下载安装
    抖音能看到谁搜索过自己吗?
    尊敬的用户,您好。针对抖音平台是否能够查看谁搜索过自己的问题,我们需要做一些详细说明。首先,根据我们了解到的情况,在抖音
    什么是人工智能“语料库”?为什么每个人都在谈论它?
    编者按:比尔盖茨(Bill Gates)、Reddit 首席执行官和其他科技领袖越来越多地谈论“语料库”,现在是时候了解它是“何方神圣”
    LED行业词语中英对应
    1、led 灯具构成英文led 球泡灯:led bulbLed 贴片灯珠:SMD LEDLed驱动电源:led driver隔离电源:isolated driver非隔离电源:
    本企业新闻

    点击拨打: