php tp 查数据库数据一条_ThinkPHP5查询数据及处理结果的几种方法

ThinkPHP5在开发项目的时候数据量会不断增加,所以数据库已经成为影响平台开发的问题,下文是ThinkPHP5查询数据及处理结果的几种方法,一起跟着爱站技术频道小编的步伐来了解一下吧!

在处理数据库查询结果时遇到了些问题,记录下用到过的几种查询方式和结果处理。

1. 查询某条记录

$where=array(

"version_id"=>$version_id

);

$data = model("PackageWhitelist")->where($where)->find();

$this->assign("package_id",$package_id);

$where=array(

"package_id"=>$package_id

);

$data = model("Package")->where($where)->find();

if($data){

$this->assign("target_version",$data['target_version']);

}

2. 查询某条记录某个字段

$device_number_list = model("PackageWhitelist")->where($where)->field("device_number")->find();

$this->assign("device_number",$device_number_list['device_number']);

3. 查询多个记录某个字段 , 并处理结果,结果是一个数组集

$where=array(

"version_id"=>$version_id

);

$data = model("PackageWhitelist")->where($where)->field("device_number")->select();

$device_number_list='';

foreach($data as $val){

$list = $val->toArray();

if($device_number_list){

$device_number_list=$device_number_list.';'.$list["device_number"];

}else{

$device_number_list=$list["device_number"];

}

}

4. 查询多条记录

$where=array(

"version_id"=>$version_id

);

$data = model("PackageWhitelist")->where($where)->select();

$device_number_list='';

foreach($data as $val){

$list = $val->toArray();

if($device_number_list){

$device_number_list=$device_number_list.';'.$list["device_number"];

}else{

$device_number_list=$list["device_number"];

}

}

5. 以页形式查询,并处理结果。

public function index($version_id){

$where=array(

"version_id"=>$version_id

);

$version_name = model("Version")->where($where)->field("version_name")->find();

$listrows=config("LISTROWS")?config("LISTROWS"):10;

$package_lists=model("Package")->where($where)->paginate($listrows);

$package_infos = $package_lists->toArray()["data"];

foreach($package_infos as $key=>$value){

$package_infos[$key] = array("source_version" => $version_name["version_name"]) + $package_infos[$key];

}

}

再来总结一下TP5的三种查询数据库方式

方式一:原生sql查询

代码示例:

方式二:使用查询构建器

代码示例:

where('banner_id','=',$id) 返回查询对象,->select();返回查询结果,

* 除了select操作还有 find(返回一条数据) update delete insert

* 对应的where 也分三种,1.表达式where('字段名','表达式','查询条件') 2.数组发 3.闭包。

*/

// 2.1 表达式法

// $result = Db::table('banner_item')

// ->where('banner_id','=',$id)

// ->select();

// return $result;

//2.2 闭包法

$result = Db::table('banner_item')

->where(function ($query) use($id){

$query->where('banner_id','=',$id);

})

->select();

return $result;

}

}

方式三:ORM(Object Relation Mapping) 对象关系映射

使用ORM 查询数据库主要区别就是在写模型的继承think\model类,然后控制器就可以使用model的默认方法来获取数据而不是自己再在模型中专门写一个获取方法

代码示例:

model:

where('banner_id','=',$id) 返回查询对象,->select();返回查询结果,

// * 除了select操作还有 find(返回一条数据) update delete insert

// * 对应的where 也分三种,1.表达式where('字段名','表达式','查询条件') 2.数组发 3.闭包。

// */

//

// // 2.1 表达式法

$result = Db::table('banner_item')

->where('banner_id','=',$id)

->select();

return $result;

// //2.2 闭包法

// $result = Db::table('banner_item')

// ->where(function ($query) use($id){

// $query->where('banner_id','=',$id);

//

// })

// ->select();

// return $result;

//

//

//

//

//

// }

}

controller:

goCheck();

// $banner = BannerModel::getBannerByID($id);

$banner = BannerModel::get($id);

if(!$banner){

throw new BannerMissException();

}

return $banner;

}

}

上文是ThinkPHP5查询数据及处理结果的几种方法,相信大家都有了一定的了解,想要了解更多的内容,请继续关注爱站技术频道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值