2 Db类:查询操作
知识梳理
1、find(); 查询单条数据
2、select();查询多条数据
3、value('field_name');查询某个字段的值
4、column('列名称','索引名');查询某一列的值
5、cursor();游标查询 减少大量数据查询内存开销
3、name()和table()的区别
4、find()和select()方法之前可以使用所有的链式调用
1)find方法 查询单条
//有数据:返回一维关联数组 //没有数据:返回NULL Db::table(bbs_category)->where('id',1)->find();
//没有数据:返回空数据 Db::table('think_user')->where('id', 1)->findOrEmpty();
//没有数据 抛出异常 Db::table('think_user')->where('id', 1)->findOrFail(); 则会抛出一个 think\db\exception\DataNotFoundException
2)查询多条
//返回:数据集对象 Db::table('bbs_category')->where('status',0)->select(); //转换为数组 Db::table('bbs_category')->where('status',0)->select()->toArray(); //转换为json Db::table('bbs_category')->where('status',5)->select()->toJson(); //无结果:抛出异常 Db::table('bbs_category')->where('status',5)->selectOrFail(); 抛出一个 think\db\exception\DataNotFoundException 异常
3)一维和二维数组取值
find()方法:返回一维数组
array(3) { ["id"]=> int(82) ["name"]=> string(6) "浙江" ["e_name"]=> string(8) "zhejiang" } //foreach()会输出所有的值 //获取某个字段的值直接echo $array['name'];
select()方法:返回二维数组
foreach ($res as $key=>$val){ var_dump($val['name']); } //必须用foreach循环取值
4) 查询某个字段的值
返回字符串 无数据返回 NULL
Db::name('bbs_category')->where('status',0)->value('name');
带索引查询
Db::name('bbs_category')->where('status',0)->value('name','id');//第二参数值是索引
5) 查询某一列的值
有数据返回索引数组 无数据返回空数组
Db::name('bbs_category')->where('status',0)->column('name');
根据索引查询 返回id=>name的关联数组
Db::name('bbs_category')->where('status',0)->column('name','id');
返回所有数据 根据id所有查询 返回关联数组
Db::name('bbs_category')->where('status',0)->column('*','id');
6)游标查询cursor()
$res = Db::name('bbs_category')->where('status',0)->cursor(); foreach ($res as $val) { var_dump($val['name']); }//利用了PHP生成器的特性 大幅减少查询内存开销

浙公网安备 33010602011771号