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

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

开发者学堂课程【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);

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

相关文章
|
6月前
|
存储 关系型数据库 MySQL
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
144 0
|
6月前
|
关系型数据库 MySQL 数据库
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
129 0
|
28天前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
106 6
|
28天前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
64 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
2月前
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
3月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
54 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
3月前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
107 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
3月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
37 6
|
3月前
|
存储 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
46 4
|
3月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(中)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
30 3
下一篇
无影云桌面