封装数据库操作类(构造方法)|学习笔记

简介: 快速学习封装数据库操作类(构造方法)

开发者学堂课程【PHP 进阶教程-由浅入深掌握面向对象开发-第一阶段封装数据库操作类(构造方法)】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/711/detail/12677


封装数据库操作类(构造方法)

 

内容介绍:

一、封装数据库操作类示例

 

一、封装数据库操作类示例

一个类通常就是一个文件,在命名的时候一定要做好准备和规范,以后应该怎么用这个类,怎么找到他,所以要先确定文件的名字:通常类文件命名规范有两种:

第一种,文件名字与类名字一样,如 Sql.php,封装的是 Sql 类;

第二种,php7以前开发的时候是混合开发,有面向过程和面向对象一起来完成某一项目的制作,为了区分普通PHP文件,增加中间类描述,如 Sql.class.php

现在 PHP 几乎都是面向对象编程,所以通常采用第一种方式:Sql.php

<?Php

#数据库操作类

因此当前命名数据类的文件为:Sql.php,代表封装的是 Sql 类。使用时,只要找到 Sql 的文件就可知道这是实现数据库的操作

2、确定类文件名字后其实也就确定了类名字,因此可以创建一个 Sql 类。

<?Php

#数据库操作类

Class Sql{

}

在 php 中。类名不区分大小写,但尽量做到严谨,有些框架保证类名的一致性,会区分大小写。

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

一是解决特定问题的,叫特定使用,只针对项目这一模块具体的功能,这个类能完美的解决当前的问题,但在别的地方可能不能重复使用;特定使用,功能可以不用太灵活,只要能解决当前问题就可以。

通用工具,功能应该大众化,考虑的比较全面,数据的变化会比较多,业务的需求需要考虑全面,可能会细分。

数据库类以后凡是要操作数据库的地方都可以用得到,很多项目都会用到,所以应该是个通用工具类,就意味着别人用起来简单,制作过程很复杂,因此要考虑其到处可用的特性,让其能够灵活。

4.数据库的操作最基本的特性不会改变,因为是基于 mysqli 的,用到的东西就不会有太多的变化:即需要连接认证,而连接认证的信息是灵活的,所以可以通过设定属性来控制,这些信息也都是不同使用者不同的,应该可以改变,所以可以通过构造方法来实现数据传入,使其变成可以灵活处理的。

<?Php

#数据库操作类

Class Sql{

#定义属性:保存数据库初始化的信息

public Shost;

public Sport;

pulic Suser;

public Spass;

public Sdbname;

public Scharset;

#实现数据的初始化:灵活性(允许外部修改)和通用性(给定默认值)

public function _construct(array $array()){

#完成初始化

$this->host = $info[ ' host'] ?? 'localhost';

$this->port = $info['port'] ?? '3306';

$this->user=$info['user']??'root';

$this->pass=$info['pass'] ?? 'root';

$this->dbname=$info['dbname'] ?? 'db_2';

$this->charset = $info['charset'] ?? 'utf8';

}

}

先把属性用 public 做好,主机地址,端口,用户名,密码,数据库名字以及字符集,做好之后,给他一个对应的构造方法,规定传入的必须是一个数组,强制类型,但可以是一个空数组,可以给他默认值,数组是由要求的,是关联数组,下标就是属性的名字,值就是属性对应的数值,对当前属性进行赋值,如果存在,就取这个信息,不存在,就取默认值,这样在保证灵活性的前提下又能保证通用性,数据库在本地操作就可以使用这些,但真实的项目开发不会这样,即便要做,也来自外部配置。

属性初始化就意味着别人要用内容,就可以使用了,传入数据,验证数据。

注意:方法设定的原则是一个方法只实现一个简单的功能,初始化就完成初始化,不要多个功能堆积到一个方法中,堆到一起可以解决问题,但灵活性也会相应的变差。

5.测试

数据库属性会在实例化Sql对象的时候自动初始化。注意代码中的信息是自己定义的要求来传递数据,测试的时候可以用,要保证代码是可以运行的。

#接上述代码(类外测试)

Ssl = new sql(); #使用默认数据库信息

$db = array(

" host' -> '192.168.0.1 ',

"user" -> 'admin' ,

" pass' -> 'admin' ,

" dbname' -> "Taobao'

);

$s2 = new sql(Sdb);#使用外部数据库信息

访问 Sql.php,没有反应,再加一行下列代码:Var_dump(Ss2);

发现赋值传入了,没有赋值的使用默认值,这样就保证了数据的灵活性。

相关文章
|
3月前
|
存储 关系型数据库 MySQL
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
50 0
|
3月前
|
关系型数据库 MySQL 数据库
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
49 0
|
8月前
|
存储 SQL 关系型数据库
[MySQL]学习笔记目录(尚硅谷宋红康MySQL数据库教程)
[MySQL]学习笔记目录(尚硅谷宋红康MySQL数据库教程)
|
2月前
|
缓存 NoSQL 关系型数据库
数据库缓存一致性学习笔记(一)
数据库缓存一致性学习笔记(一)
|
2月前
|
开发框架 安全 .NET
某教程学习笔记(一):07、数据库漏洞(access注入)
某教程学习笔记(一):07、数据库漏洞(access注入)
19 0
|
2月前
|
XML SQL 安全
某教程学习笔记(一):08、MSSQL数据库漏洞
某教程学习笔记(一):08、MSSQL数据库漏洞
17 0
|
2月前
|
安全 关系型数据库 MySQL
某教程学习笔记(一):09、MYSQL数据库漏洞
某教程学习笔记(一):09、MYSQL数据库漏洞
19 0
|
2月前
|
Oracle 关系型数据库 数据处理
某教程学习笔记(一):10、oracle数据库注入
某教程学习笔记(一):10、oracle数据库注入
17 0
|
3月前
|
SQL 关系型数据库 MySQL
第一章:初识数据库---SQL学习笔记
第一章:初识数据库---SQL学习笔记
66 0
|
8月前
|
数据库
java202304java学习笔记第六十六天-ssm-mybatis的增删改查-插入数据库操作2
java202304java学习笔记第六十六天-ssm-mybatis的增删改查-插入数据库操作2
46 0

热门文章

最新文章