咔叽网单游戏基地

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 19|回复: 0

[PHP编程] tp5.1 框架数据库-数据集操作实例分析

[复制链接]
  • TA的每日心情
    无聊
    2019-6-2 14:11
  • 签到天数: 4 天

    [LV.2]圆转纯熟

    1万

    主题

    1万

    帖子

    7万

    积分

    帖子管理员

    Rank: 9Rank: 9Rank: 9

    积分
    70408
    发表于 2020-7-6 22:09:04 | 显示全部楼层 |阅读模式
    本文实例讲述了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程序设计有所帮助。

    原文地址:https://www.jb51.net/article/187361.htm
    回复

    使用道具 举报

    QQ|手机版|小黑屋|咔叽网单

    GMT+8, 2020-8-14 01:29

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表