ThinkPHP5.0 模型查询操作
Posted 楓羽靈~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP5.0 模型查询操作相关的知识,希望对你有一定的参考价值。
1、获取单个数据
//取出主键为1的数据 $user = User::get(1); echo $user->name; // 使用数组查询 $user = User::get([‘name‘ => ‘thinkphp‘]); // 使用闭包查询 $user = User::get(function($query){ $query->where(‘name‘, ‘thinkphp‘); }); echo $user->name; //实例化模型后调用查询 $user = new User(); // 查询单个数据 $user->where(‘name‘, ‘thinkphp‘)->find();
2、获取多个数据
// 根据主键获取多个数据 $list = User::all(‘1,2,3‘); // 或者使用数组 $list = User::all([1,2,3]); foreach($list as $key=>$user){ echo $user->name; } // 使用数组查询 $list = User::all([‘status‘=>1]); // 使用闭包查询 $list = User::all(function($query){ $query->where(‘status‘, 1)->limit(3)->order(‘id‘, ‘asc‘); }); foreach($list as $key=>$user){ echo $user->name; } //实例化模型后调用查询 $user = new User(); // 查询数据集 $user->where(‘name‘, ‘thinkphp‘)->limit(10)->order(‘id‘, ‘desc‘) ->select();
3、获取某个字段或者某个列的值
// 获取某个用户的积分 User::where(‘id‘,10)->value(‘score‘); // 获取某个列的所有值 User::where(‘status‘,1)->column(‘name‘); // 以id为索引 User::where(‘status‘,1)->column(‘name‘,‘id‘);
4、动态查询
// 根据name字段查询用户 $user = User::getByName(‘thinkphp‘); // 根据email字段查询用户 $user = User::getByEmail(‘[email protected]‘);
5、通过Query类查询
User::where(‘id‘,‘>‘,10)->select(); User::where(‘name‘,‘thinkphp‘)->find();
6、数据分批处理
User::chunk(100,function($users){ foreach($users as $user){ // 处理user模型对象 } });
7、查询缓存(get
方法和all
方法的第三个参数表示是否使用查询缓存,或者设置缓存标识
//由于第二个参数是关联预载入定义,V5.0.6+版本开始,可以直接在第二个参数传入true表示开启查询缓存。 $user = User::get(1,‘‘,true); $list = User::all(‘1,2,3‘,‘‘,true);
)
以上是关于ThinkPHP5.0 模型查询操作的主要内容,如果未能解决你的问题,请参考以下文章
13-PHP代码审计——ThinkPHP5.0.15聚合查询漏洞分析