本文实例讲述了tp5.1 框架数据库-数据集操作。分享给大家供大家参考,具体如下:
数据库的查询结果也就是数据集,默认的配置下,数据集的类型是一个二维数组,我们可以配置成数据集类,就可以支持对数据集更多的对象化操作,需要使用数据集类功能,可以配置数据库的resultset_type
参数如下:
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
类,但用法是一致的。
可以直接使用数组的方式操作数据集对象,例如:
// 获取数据集
$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
参数)
// 获取数据集
$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
方法判断,例如:
$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程序设计有所帮助。
您可能感兴趣的文章:- PHP tp5中使用原生sql查询代码实例
- tp5.1 框架路由操作-URL生成实例分析
- tp5.1 框架join方法用法实例分析
- tp5.1框架数据库子查询操作实例分析
- tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
- TP5多入口设置实例讲解