一、单条数据查询
- Db::table() 中 table 必须指定完整数据表
- find() 方法查询一条数据,需指定where 条件,
Db::table('test_user')->find();
Db::table('test_user')->where('id',1)->find();
Db::table('test_user')->where('id',3)->findOrFail();
Db::table('test_user')->where('id',3)->findOrEmpty();
- Db::getLastSql() 返回近一条 SQL 查询的原生语句
二、数据集查询
- select() 获取多列数据
Db::table('test_user')->select();
Db::table("test_user")->where('code',3)->selectOrFail();
Db::table('user_test')->select()->toArray();
- 数据库配置文件设置了前缀,可以使用 name() 方法忽略前缀
Db::name('user')->select();
三、 其它查询
- value() :查询指定字段的值,没有数据返回 null;
Db::name('user')->where('id',1)->value('name');
- column() :查询指定列的值
Db::name('user')->column('score');
Db::name('user')->column('id','name');
- 避免内存处理太多数据出错:chunk() 方法处理数据
Db::name('user')->chunk(3,function($users){
foreach($users as $user){
dump($user);
}
})
- cursor():利用游标查询功能,可以大幅减少海量数据的内存开销,它利用了 PHP 生成器特情。每次查询只读一行,然后在读取时,自动定位到下一行继续读取;
$cursor = Db::name('user')->cursor();
foreach($cursor as $user){
dump($user);
}