thinkphp8数据库的链式操作

  • 链式操作是什么?

链式操作是一系列的操作组合起来形成一行代码,类似一个链条而得名。优点很明显,可以减少开发的工作量。

二.链式操作的示例

$res = db('user')

->alias('u')//设置别名

->join('user_detail b','a.id=b.uid','left')//关联user_detail表,设置别名b,链接方式left

->where('u.id','>',0)//查询条件

->whereor('b.id','>',0)//或查询

->field('u.username','b.uid')//设置查询的字段

->limit(1,10)//查询第一页,10条数据

->order('u.id desc')//排序

->group('u.id')//分组

->having("count(u.id)>0")//分组后筛选

->cache(true)//查询缓存

->fetchSql(true)//返回sql

->select();

var_dump($res);

三.链式其它操作

  1. 、添加时的关闭检测字段

db('user')->strict(false)->insert(['username'=>1]);

2)、总是缓存,cacheAlways会把空数据也给缓存上

db('user')->where('id',100)->cacheAlways('key',60,'user')->find();

3)、comment生成带注释的sql

$res = db('user')->where('id','=',5)->cacheAlways('key',60,'user')->comment('我会把空缓存上')->fetchSql(true)->find();

4)、分页方法page(其实和limit没多大区别(页数-1)*每页条数)

5)、distinct去重,与group类似

$res = db('user')->distinct(true)->field('username')->select()->toarray();

var_dump($res);

$res = db('user')->group('username')->field('username')->select()->toarray();

var_dump($res);

、force强制索引

7)、failException空数据报错

$res = db('user')->where('id','>',100)->failException()->select()->toarray();

var_dump($res);

四.Group报错

$res = db('user')->group('username')->select()->toarray();//报错

$res = db('user')->group('username')->field('username')->select()->toarray();//正常,意思是以什么分组就只能查询这一个字段,这个是数据库的设置问题,取消sql_mode的ONLY_FULL_GROUP_BY即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值