tp5.1 框架数据库-数据集操作实例分析
本文实例讲述了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($usersas$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($usersas$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)框架进阶教程》、《ZendFrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。