一、 单条数据查询
DB:table('oc_user')->where('id', 27)->find();
// sql语句: SELECT * FROM `oc_user` WHERE `id` = 27 LIMIT 1
// findOrFail方法,当这条数据不存在时,抛出一个error
DB:table('oc_user')->where('id', 127)->findOrFail();
// findOrEmpty方法,当这条数据不存在时,返回一个空数组[]
DB:table('oc_user')->where('id', 127)->findOrEmpty();
-
DB:table()
中的table
必须制定完整数据表(包括前缀)
-
where
用来指定条件
-
DB::getLastSql();
获取最后一条SQL语句
二、 数据集查询
DB:table('oc_user')->select();
// SELECT * FROM `oc_user`
// 转化为数组
DB:table('oc_user')->select()->toArray();
//用name方法省略前缀
DB::name('user')->select();
- 查不到数据时 ,用
selectOrFail
方法抛出异常
- 使用
select()
方法后再调用toArray()
方法可以将数据集对象转化为数组
- 当在数据库配置文件中配设置了前缀,可以使用
name
方法忽略前缀
二、 其他查询
- 通过
value
方法,可以查询指定字段的值(单个),没有数据返回null
Db::table('oc_user')->where('id',1)->value('username');
- 通过
colunm()
方法,可以查询指定列的值(多个),没有数据返回空数组
Db::table('oc_user')->column('username')
// 可以指定`id`作为列值的索引
Db::table('oc_user')->column('username', 'id')
- 数据量过大时,使用
chunk()
方法分批处理数据
//每次处理3条数据
Db::name('user')->chunk(3, function ($users) {
dump($users);
});
- 游标查询,每次查询只读取一条,在读取时,自动定位到下一行继续读取
$cursor = Db::name('user')->cursor();
foreach($cursor as $user){
dump($user);
}
网友评论