封装数据库操作类(优化)|学习笔记

简介: 快速学习封装数据库操作类(优化)

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

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


封装数据库操作类(优化)

 

内容介绍:

一、优化业务类操作简介

二、优化业务类操作代码详解及测试

三、确定类的控制简介

四、确定类的控制详解

 

一、优化业务类操作简介

用户在使用 SQL 类的时候,必须要进行第一步实例化、然后连接认证[调用  connect() ]和实现字符集置( 调用charset() ),才能完成真正的初始化。对于用户而言,这两步是必须做的,但好像又是累赘,用户并不了解这俩步的原因

用户使用 SQL 类希望实例化时就可完成初始化操作,然后就可做业务。

用户实例化 SQL 类就可以直接进行相应的业务处理:所以可以将连接认证、字符集设置在初始化方法中实现(在构造方法中调用激活),用户操作时会比较方便。

原因:因为构造方法会在实例化时,对象自动创建自动调用,所以该方法相当于已经运行,完成后用户之后的操作才有价值

 

二、优化业务类操作代码详解及测试

1.代码

#实现初始化数据库操作

public function _ construct(array $arr = []){

//先进行属性初始化后再进行调用初始化和字符集设置

#初始化:确保用户传入了数据,否则使用默认值

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

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

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

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

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

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

#调用初始化和字符集设置

if(!$this->connect()) return;

$this->charset();

//charset()与 connect() 连接有关,connect() 可能操作结果不正确,而之后需要继续调用,只有连接资源的保证才可使 charset()方法得以运行,所以需要进行判定;如果执行失败返回结果 false ,则 return 打断当前执行,但 return 对构造方法无用,因为对象调用构造方法时,不需要返回值,对象并不会拿取返回值,所以 return 的作用只是打断当前执行(虽然 return 是返回值,但是此处无意义)

}

}

2.测试:

(1)代码:

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

$s1 = new SqL();         #使用默认数据库信息

$db =array(

'host' => ' 192.168.0.1',

‘user ' => 'admin”,

‘pass’=>’admin ' ,

‘dbname' => ' T aobao '

);

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

/*$s1- >connect();

$s1->charset();*/

$res = $s1->read_all(‘desc t_40');

#$res = $s1->write("insert  into  t_40  values(null, 'name ','男',18,'classname ')");

echo $s1->errno,$s1->error ;

#echo $s1-> insert_ id();

Var_dump($res) #观察有哪些字段

(2)解析

将下述俩行代码注释:

/*$s1- >connect();

$s1->charset();*/

停止查看 insert

#$res = $s1->write("insert  into  t_40  values(null, 'name ','男',18,'classname ')");

执行观察效果;发现效果相同,说明可以操作

image.png

但是对于用户而言,只是新建了一个对象(new SqL($db)),就可以直接使用$s1->read_all(),所以上述内容在做业务。

用户需要直接做自己的业务,因为初始化完成紧接着就是做业务。

 

三、确定类的控制简介

在学习完内容之后,发现类中有的在外部无用,有的在外部有用,但使用的都是 public,所以需要确定类的控制。

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

做起来较为复杂,因为那些类需要控制,都应进行业务规范,或者说需要开发人员有足够的经验是否需要公开或私有


四、确定类的代码讲解

#数据库初始化资源私有:不需要外部访问

private $host;

private $port;

private $user;

private $pass;

private $dbname ;

private $charset;

//属性需要私有化,因为都是内部使用,外部不用

private $link;

//连接资源仅限内部跨方法使用

Public $errno;

Public $error;

//需要外部使用,因为外部访问

private function connect(){}

private function charset(){}

//连接认证和字符集设置已经内部(构造方法)调用,完全自由化,不需要外部使用

private function check($sql){}

//SQL 检查属于内部(write(),read(),inset()做支撑)调用,不需要公有

因为在学习的过程中一直测试,无论是增删改查都可完成,所以测试结束之后将测试所写代码删除。SQL 类封装结束。

以后要使用引入该文件,实例化对象,按照所要的数据进行个性化的定制,就可以连接自己的数据库操作了。

然后讲的就是增删改查,受影响的行数,记录,对应的自增长 id。

相关文章
|
JavaScript 关系型数据库 MySQL
❤Nodejs 第六章(操作本地数据库前置知识优化)
【4月更文挑战第6天】本文介绍了Node.js操作本地数据库的前置配置和优化,包括处理接口跨域的CORS中间件,以及解析请求数据的body-parser、cookie-parser和multer。还讲解了与MySQL数据库交互的两种方式:`createPool`(适用于高并发,通过连接池管理连接)和`createConnection`(适用于低负载)。
15 0
|
20天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
1月前
|
SQL 缓存 PHP
PHP技术探究:优化数据库查询效率的实用方法
本文将深入探讨PHP中优化数据库查询效率的实用方法,包括索引优化、SQL语句优化以及缓存机制的应用。通过合理的优化策略和技巧,可以显著提升系统性能,提高用户体验,是PHP开发者不容忽视的重要议题。
|
1月前
|
SQL 存储 JSON
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
亲爱的社区小伙伴们,Apache Doris 2.1.0 版本已于 2024 年 3 月 8 日正式发布,新版本开箱盲测性能大幅优化,在复杂查询性能方面提升100%,新增Arrow Flight接口加速数据读取千倍,支持半结构化数据类型与分析函数。异步多表物化视图优化查询并助力仓库分层建模。引入自增列、自动分区等存储优化,提升实时写入效率。Workload Group 资源隔离强化及运行时监控功能升级,保障多负载场景下的稳定性。新版本已经上线,欢迎大家下载使用!
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
|
1月前
|
存储 搜索推荐 关系型数据库
深度探讨数据库索引的数据结构及优化策略
深度探讨数据库索引的数据结构及优化策略
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL 数据库】7、SQL 优化
【MySQL 数据库】7、SQL 优化
49 0
|
2月前
|
存储 监控 数据库
《优化数据库性能的六大技巧》
数据库作为后端开发中至关重要的一环,在实际应用中经常遇到性能瓶颈问题。本文将分享六大实用技巧,帮助开发者优化数据库性能,提升系统响应速度。
|
1月前
|
存储 关系型数据库 MySQL
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
170 0
|
20天前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
8天前
|
SQL 缓存 Java
Java数据库连接池:优化数据库访问性能
【4月更文挑战第16天】本文探讨了Java数据库连接池的重要性和优势,它能减少延迟、提高效率并增强系统的可伸缩性和稳定性。通过选择如Apache DBCP、C3P0或HikariCP等连接池技术,并进行正确配置和集成,开发者可以优化数据库访问性能。此外,批处理、缓存、索引优化和SQL调整也是提升性能的有效手段。掌握数据库连接池的使用是优化Java企业级应用的关键。

热门文章

最新文章