获取数据集行数 php,数据集 · ThinkPHP5.0完全开发手册 · 看云

|版本|功能调整|

|---|---|

|5.0.5|原生查询不支持返回数据集对象|

数据库的查询结果也就是数据集,默认的配置下,数据集的类型是一个二维数组,我们可以配置成数据集类,就可以支持对数据集更多的对象化操作,需要使用数据集类功能,可以配置数据库的`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`,提供了和数组无差别用法,并且另外封装了一些额外的方法。

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

~~~

// 获取数据集

$users = Db::name('user')->select();

// 直接操作第一个元素

$item = $users[0];

// 获取数据集记录数

$count = count($users);

// 遍历数据集

foreach($users as $user){

echo $user['name'];

echo $user['id'];

}

~~~

需要注意的是,如果要判断数据集是否为空,不能直接使用`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|截取数据中的一部分|

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值