前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tp5.1 框架数据库-数据集操作实例分析

tp5.1 框架数据库-数据集操作实例分析

作者头像
砸漏
发布2020-11-02 11:38:12
1.3K0
发布2020-11-02 11:38:12
举报
文章被收录于专栏:恩蓝脚本

本文实例讲述了tp5.1 框架数据库-数据集操作。分享给大家供大家参考,具体如下:

数据库的查询结果也就是数据集,默认的配置下,数据集的类型是一个二维数组,我们可以配置成数据集类,就可以支持对数据集更多的对象化操作,需要使用数据集类功能,可以配置数据库的resultset_type参数如下:

代码语言:javascript
复制
return [
  // 数据库类型
  'type'    =  'mysql',
  // 数据库连接DSN配置
  'dsn'     =  '',
  // 服务器地址
  'hostname'  =  '127.0.0.1',
  // 数据库名
  'database'  =  'thinkphp',
  // 数据库用户名
  'username'  =  'root',
  // 数据库密码
  'password'  =  '',
  // 数据库连接端口
  'hostport'  =  '',
  // 数据库连接参数
  'params'   =  [],
  // 数据库编码默认采用utf8
  'charset'   =  'utf8',
  // 数据库表前缀
  'prefix'   =  'think_',
  // 数据集返回类型
  'resultset_type' =  'collection',
];

返回的数据集对象是think\Collection,提供了和数组无差别用法,并且另外封装了一些额外的方法。

在模型中进行数据集查询,全部返回数据集对象,但使用的是think\model\Collection类,但用法是一致的。

可以直接使用数组的方式操作数据集对象,例如:

代码语言:javascript
复制
// 获取数据集
$users = Db::name('user')- select();
// 直接操作第一个元素
$item = $users[0];
// 获取数据集记录数
$count = count($users);
// 遍历数据集
foreach($users as $user){
  echo $user['name'];
  echo $user['id'];
}

V5.1.23+版本开始,你可以在查询的时候指定是否需要返回数据集(无需配置resultset_type参数)

代码语言:javascript
复制
// 获取数据集
$users = Db::name('user')- fetchCollection()- select();
// 直接操作第一个元素
$item = $users[0];
// 获取数据集记录数
$count = count($users);
// 遍历数据集
foreach($users as $user){
  echo $user['name'];
  echo $user['id'];
}

V5.1.24+版本开始,fetchCollection方法支持传入使用的集合类名称。

需要注意的是,如果要判断数据集是否为空,不能直接使用empty判断,而必须使用数据集对象的isEmpty方法判断,例如:

代码语言:javascript
复制
$users = Db::name('user')- select();
if($users- isEmpty()){
  echo '数据集为空';
}

Collection类包含了下列主要方法:

方法

描述

isEmpty

是否为空

toArray

转换为数组

all

所有数据

merge

合并其它数据

diff

比较数组,返回差集

flip

交换数据中的键和值

intersect

比较数组,返回交集

keys

返回数据中的所有键名

pop

删除数据中的最后一个元素

shift

删除数据中的第一个元素

unshift

在数据开头插入一个元素

reduce

通过使用用户自定义函数,以字符串返回数组

reverse

数据倒序重排

chunk

数据分隔为多个数据块

each

给数据的每个元素执行回调

filter

用回调函数过滤数据中的元素

column

返回数据中的指定列

sort

对数据排序

shuffle

将数据打乱

slice

截取数据中的一部分

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档