Thinkphp 6.0数据库的链式查询

文章介绍了数据库的链式查询概念,如通过Db::name开始,连续调用where、order等方法形成链式操作。find和select用于获取查询结果,且对象实例可保存以复用,避免重复创建。在多次查询时,同一个对象会保留之前的查询设置,但可通过removeOption清除。
摘要由CSDN通过智能技术生成

本节课我们来了解一下数据库连贯操作的链式查询,以及一些操作上的问题。

一.查询规则

1. 前面课程中我们通过指向符号“->”多次连续调用方法称为:链式查询;

2. 当 Db::name('user')时,返回查询对象(Query),即可连缀数据库对应的方法;

3. 而每次执行一个数据库查询方法时,比如 where(),还将返回查询对象(Query);

4. 只要还是数据库对象,那么就可以一直使用指向符号进行链式查询;

5. 再利用 find()、select()等方法返回数组(Array)或数据集对象(Colletion);

6. 而 find()和 select()是结果查询方法(放在最后),并不是链式查询方法;

Db::name('user')->where('id', 27)->order('id', 'desc')->find()

7. 除了查询方法可以使用链式连贯操作,CURD 操作也可以使用(后续课程研究);

8. 那么,有多少种类似 where()的链式操作方法呢?打开手册瞄一下。

二.更多查询

1. 如果多次使用数据库查询,那么每次静态创建都会生成一个实例,造成浪费;

2. 我们可以把对象实例保存下来,再进行反复调用即可;

$userQuery = Db::name('user');
$dataFind = $userQuery->where('id', 27)->find();
$dataSelect = $userQuery->select();

3. 当同一个对象实例第二次查询后,会保留第一次查询的值;

$data1 = $userQuery->order('id', 'desc')->select();
$data2 = $userQuery->select();
return Db::getLastSql();
SELECT * FROM `tp_user` ORDER BY `id` DESC

4. 使用 removeOption()方法,可以清理掉上一次查询保留的值;

$userQuery->removeOption('where')->select();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值