源于php中文网
连接数据库(TP5采用惰性连接,就是用到数据库方法才连接)
核心是:
- 静态连接:就是在配置文件中,书写数据库常量
寻找到datadase文件,写入数据库的名称,密码 - 动态连接:引用DB.php调用connect(数组/字符串)
使用原生的sql语句进行增删改查
- 查询 :
select * from hero
调用 Db::query($sql)
- 同理 更新 Bb::execute()
- 删除 Bb::execute()
- 添加(默认添加到尾部) Bb::execute()
tp5中的查询构造器
- 原理,源码都在db.php和db文件夹
链式编程的原理就是拼装成一个完整的sql语句
- 闭包形式生成的sql
- 实践
新增
Db::table('hreo')->insert(['name'=>'母鸡','age'=>15,'sex'=>1]);
Db::table('hreo')->insertAll(
['name'=>'母鸡','age'=>15,'sex'=>1],
['name'=>'母鸡2','age'=>18,'sex'=>0],
);
更新(更新都需要where,除非更新了主键)
Db::table('hreo')->update(
['id'=>100,name'=>'母鸡','age'=>15,'sex'=>1]
);
Db::table('hreo')
->where('id',1001)
->setInc('age',10);
结果是:age+10
Db::table('hreo')
->where('id',1001)
->setDec('age',10);
结果是:age-10
Db::table('hreo')
->where('id',1001)
->setDec('age',10,3);
结果是:3秒后age-10
- 查询,拼装
- 危险的删除操作,必须要有where
模型
一个模型对应一个表
可以认为是房子模型和房子实体
一个模型中的属性对应的是表中的字段
源码在model.php
模型的CURD
推荐
更新
save()方法没有限定条件的话默认是添加一条记录
查询
静态对象调用是一样的
删除
一个模型对象对应一条记录
模型读取器与修改器
原理:
使用:
注:原始的数据是不变的
类型转换
在将数据写入数据库之前会自动调用这个参数
这个参数写下来就好了
模型数据自动完成设置
create 和 update是成对出现的
场景:在添加数据的时候只添加单个字段的数据时,其他字段自动完成