PHP[OOP入门]PH06-数据库操作类

该部分为 php 面向对象的入门部分,较为肤浅且参杂过分已经不是主流的知识。

这是我早期的 php 学习笔记,php 的学习版本版本是 5.6、7,🐟2020/05/06年从有道笔记导出至此。

day06-数据库操作类

1、数据库知识回顾

连接数据库

mysqli_connect(主机名,用户名,密码)

判断是否成功

选择数据库

mysqli_select_db($link, 库名)

设置字符集

mysqli_set_charset($link, 字符集)

准备sql

执行

mysqli_query($link, $sql)

解析结果集

mysqli_fetch_assoc($result)

mysqli_fetch_rows($result)

mysqli_affected_rows($link)

mysqli_fetch_array($result)

mysqli_insert_id($link)

关闭

mysqli_close($link)

2、连贯操作

$user->where()->table()->field()->limit()->order()->select();

return $this;

3、数据库缓存字段

将表格中的全部字段缓存起来

(1)当查询的时候,如果不传递字段,默认使用全部字段(缓存)进行查询

(2)当在查询的时候,如果有一个字段输入错误了,不影响我的查询

username password createIp createTime 和缓存字段取交集查询

(3)当插入数据的时候,如果有一个字段键值对传递错误,不影响插入数据

4、__call($name, $args)函数

getByUsername getByEmail

5、两种操作

增删改查

增删改(返回的结果都是受影响的行数) exec

查(返回的是结果集) query

6、查询实现字段无顺序替换

$user->where()->table()->field()->limit()->order()->select();

$user->table()->limit()->where()->field()->order()->select();

7、数组交集

array_intersect

按值取交集,内容为第一个数组的内容

array_intersect_key

按键取交集,内容为第一个数组的内容

8、类的设计

Model类

我们写的是一个父类,基类

以后我们的一张表格就是一个类,而且都要继承自Model类

user==》UserModel goods==>GoodsModel arctical==>AbcModel

成员属性

$host

$user

$pwd

$charset

$dbname

$link //保存数据库资源

$sql //保存sql语句使用

$options = []; //用来保存其它方法(limit、where)传递过来的参数

$tableName //设置表的名字,从类名中获取

成员方法

select table filed where limit order group having

$sql = 'select %field% from %table% %where% %group% %having% %order% %limit%';