数据库的数据查询
一、单数据查询
1.Db::table()中table必须指定完整的数据表(包括前缀);
2.只查询一条数据:
Db::table()->where('id',1)->find();//如果没有查询到值,返回null
Db::getLastSql();//返回一条最近查询的SQL原生语句
输出结果:select *from 表名 limit 1;
2.还可以使用findOrFail()方法页可以查询到一条数据,在没有数据时抛出一个异常
Db::table('表名')->where('id',1)->findOrFail();
3.使用findOrEmpty()方法也可以查询一条数据,但在没有数据时返回一个空数组:
Db::table('表名')->where('id',1)->findOrEmpty();
二、数据集查询
1.用select获取多条数据:
Db::table('表名')->select();
2.多列数据在查询不到任何数据时返回空数组,使用selectOrFail()抛出异常;
$user = Db::table('tp_user')->select()->toArray();
dump($user);
3.如果在数据库配置文件.env中设置了前缀,那么我们可以使用name()方法忽略前缀⭐
Db::name('user')->select();
三、其它查询
1.通过value()方法查询,可以指定字段的值(单个),没有数据返回null;
Db::name('user')->where('id', 27)->value('upass');//显示表中id为27的upass内容
2.通过colunm()方法,可以查询指定列的值(多个),可以指定id作为列值的索引,没有数据返回空数组:
Db::name('user')->column('username');
3.利用游标查询功能(大幅度减少海量数据的内存开销,利用php生成器特性,每次查询只读一行,然后再读取时,自动读取到下一行继续读取):
⭐(我return json($cursor)返回的是空数组,dump出来的东西看不懂)
$cursor = Db::table('')->cursor();
foreach($cursor as $user){
dump($user);
}