Thinkphp5手册学习笔记--数据库操作

这篇博客详细介绍了Thinkphp5的数据库操作,包括配置检查、原生语句、查询、分批处理、JSON字段查询、数据增删改查、条件查询、排序、去重、SQL编译、严格检查字段及时间查询等实用技巧。
摘要由CSDN通过智能技术生成

Thinkphp5的数据库操作内容实在是太多太多,一些功能只有开发大型的项目的时候才能用到。老蔡记录的都是一些平时能用的到的语句。

1:在数据库配置文件database.php中,有一个是否严格检查字段是否存在的配置项经常用到,因为我们为了达到某些目的,可能经常在表单中设置隐藏域。'fields_strict'  => true,设置为true时数据入库时会检查字段是否完全对应。

2:原生语句执行

//查询
Db::query('select * from think_user where id=?',[8]);
//插入
Db::execute('insert into think_user (id, name) values (?, ?)',[8,'thinkphp']);

//占位符绑定---更安全
Db::query('select * from think_user where id=:id',['id'=>8]);
Db::execute('insert into think_user (id, name) values (:id, :name)',['id'=>8,'name'=>'thinkphp']);

 

3:查询一条数据

Db::name('think_user')->where('id',1)->find();

 find 方法查询结果不存在,返回 null

4:查询多条数据

Db::name('user')->where('status',1)->select();

 select 方法查询结果不存在,返回空数组

5:值和列的查询

// 返回某个字段的值
Db::name('think_user')->where('id',1)->value('name');

// 返回数组
Db::name('think_user')->where('status',1)->column('name');

// 指定索引
Db::name('think_user')->where('status',1)->column('name','id');
Db::name('think_user')->where('status',1)->column('id,name');

 

关于使用Db类静态方法和使用db助手函数哪个更有效率的问题,老蔡经过查阅资料总结如下:

在Thinkphp5.0.9之前的版本

使用db助手函数默认每次都会重新连接数据库--影响效率

在Thinkphp5.0.9之后的版本

db助手函数默认不再强制重新连接

 6:数据分批处理,这里Mark一下,以后研究生成静态文件的时候不知道能不能用的到。

如果你需要处理成千上百条数据库记录,可以考虑使用chunk方法,该方法一次获取结果集的一小块,然后填充每一小块数据到要处理的闭包,该方法在编写处理大量数据库记录的时候非常有用。

比如,我们可以全部用户表数据进行分批处理,每次处理 100 个用户记录:

Db::table('think_user')->chunk(100, function($users) {
    for
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值