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%';