当前位置: 首页 > 后端技术 > PHP

PHP常用操作类的实现——数据库操作类概述

时间:2023-03-29 23:49:17 PHP

感谢大家的收藏和好评,这是对我最大的鼓励。本系列文章主要是一些常用的PHP类操作。回过头来看面向对象,我一直在做小白文章的写作,因为我也是小白。相信有人需要,也希望读者喜欢。说明关于PHP语言的各种操作的实现,大家可以在网上找到,但是质量参差不齐,有些代码不太好理解,有时候看得眼花缭乱,所以在这里统一整理一下(注:是安排,每一种操作,我都会参考至少三个优秀的代码,然后自己跑出来,而不是CV)我会尽量遵守PSR规范,会有很详细易懂的-理解评论涉及到的相关知识点,比如设计模式、类型检测、浏览器架构、通信数据,我也会简单说一下,并留下相关链接,希望读者慢慢咀嚼,仔细阅读。准备内容涉及面向对象、数据库、文件操作、购物车、分页、图片处理、JSON数据接口,可能需要你有一定的知识基础,当然这些内容是独立的,你可以有选择地参考。源代码DATABASE=$dbname;/*判断数据库是否连接*/if(!self::$resource){self::$resource=mysqli_connect($this->HOST,$this->USER,$this->ROOT,$this->DATABASE);/*如果数据库连接失败*/if(!self::$resource){thrownewExecption('mysqlconnecterror'.mysqli_connect_error());}/*设置编码*/mysqli_query(self::$resource,"setnamesUTF8");}返回自我::$资源;}}/**********编码1*********************$res=DB::getInstance()->connect("base");print_r($res);die;************************************//**********编码2********************$res=newDB();$res::getInstance()->connect();因为构造函数Private,这句话会产生fatalerror*******************************************************************编码3*********************$a=DB::getInstance();$a->connect();$b=DB::getInstance();$b->connect();echo"

";print_r($a);print_r($b);只会执行一次构造函数,说明$a$b是类的同一个实例************************************/不看构造函数和getInst就解析ance方法,其实是可以看出来的。实现数据库操作类非常简单。你只需要将数据库连接函数的参数作为类成员变量,然后调用即可。但是,这里使用了一种简单的设计模式——单例模式。简而言之,添加它将使代码更加方便和健壮。下面简单说说为什么要使用单例模式?其实技术上的考虑主要是考虑节省内存资源(因为我们需要用一个实例访问数据库,不需要重复实例【2019.5.28更新】)来提高系统性能,但是我们其实能感觉就是比较方便,而且高了一点,就用吧。什么是单例模式?例如大楼只有一个入口,便于控制。用面向对象的话说,一个类只有一个实例,便于管理。代码部分如何实现单例模式?先声明一个私有构造函数,这样就不能在外面用new实例化多个对象了。你可以用coding2的代码试试,会报错,构造一个publicentry去获取类的实例。总是有可用的实例注意,注意self指的是当前类,而instanceof检查当前变量是否是该类的实例。如何检验单例效应?可以使用编码3的代码查看输出结果,然后会发现构造函数只执行了一次,也就是说对象第一次实例化之后,后面的变量对该对象的引用是一致的,这意味着实际上只有一个实例。为什么getInstance方法是静态的?函数也是变量。静态变量无论被引用多少次都不会重复生成,节省空间。这里不考虑多线程。参考链接PHP单例模式解析与实战PHP设计模式单例模式单例模式5种语言实现方式,静态方法和非静态方法你了解多少?如果您对结论有不理解或认为有误,请留言。最后我会把源码放在GitHub主页上,不用担心,是中文的,需要的可以下载。