Class yii\db\BatchQueryResult

继承yii\db\BatchQueryResult » yii\base\BaseObject
实现Iterator, yii\base\Configurable
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/db/BatchQueryResult.php

BatchQueryResult 表示批量查询, 你可以从中批量查询数据.

通常, 你不直接实例化 BatchQueryResult. 而是通过调用 yii\db\Query::batch()yii\db\Query::each() 来获得它. 由于 BatchQueryResult 实现了 Iterator 接口, 所以你可以对其进行迭代以在每次迭代中获取一批数据. 例如:

$query = (new Query)->from('user');
foreach ($query->batch() as $i => $users) {
    // $users 表示第 i 个批次中的行
}
foreach ($query->each() as $user) {
}

公共属性

隐藏继承的属性

属性类型描述定义在
$batchSize integer 每个批次中要返回的行数. yii\db\BatchQueryResult
$db yii\db\Connection 执行批查询时要使用的数据库(DB)连接. yii\db\BatchQueryResult
$each boolean 是否在每次迭代期间返回单行. yii\db\BatchQueryResult
$query yii\db\Query 与该批处理查询相关联的查询对象. yii\db\BatchQueryResult

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的已命名方法. yii\base\BaseObject
__construct() 构造函数. yii\base\BaseObject
__destruct() 析构函数. yii\db\BatchQueryResult
__get() 返回对象属性的值. yii\base\BaseObject
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\BaseObject
__set() 设置对象属性的值. yii\base\BaseObject
__unset() 将对象属性设置为null. yii\base\BaseObject
__wakeup() 如果应用程序在包含特制字符串的用户输入上调用unserialize(), 则禁用反序列化功能以防止远程执行代码. yii\db\BatchQueryResult
canGetProperty() 返回一个值, 指示属性是否可读. yii\base\BaseObject
canSetProperty() 返回一个值, 指示属性是否可写. yii\base\BaseObject
className() 返回此类的完全限定名称. yii\base\BaseObject
current() 返回当前数据集. yii\db\BatchQueryResult
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\BaseObject
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\BaseObject
init() 初始化对象. yii\base\BaseObject
key() 返回当前数据集的索引. yii\db\BatchQueryResult
next() 将内部指针移动到下一个数据集. yii\db\BatchQueryResult
reset() 重置批量查询. yii\db\BatchQueryResult
rewind() 将迭代器重置为初始状态. yii\db\BatchQueryResult
valid() 返回当前位置是否存在有效的数据集. yii\db\BatchQueryResult

受保护的方法

隐藏继承的方法

方法描述定义在
fetchData() 获取下一批数据. yii\db\BatchQueryResult
getRows() 读取并收集行以进行批处理. yii\db\BatchQueryResult

属性详情

$batchSize public 属性

每个批次中要返回的行数.

public integer $batchSize 100
$db public 属性

执行批查询时要使用的数据库(DB)连接.

如果为null, 则使用应用程序"db"组件.

public yii\db\Connection $db null
$each public 属性

是否在每次迭代期间返回单行.

如果为false, 则在每次迭代中将返回整行.

public boolean $each false
$query public 属性

与该批处理查询相关联的查询对象.

除非显式调用 reset(), 否则不要直接修改此属性.

public yii\db\Query $query null

方法详情

__destruct() public 方法

析构函数.

public void __destruct ( )
__wakeup() public 方法 (可用自版本: 2.0.38)

如果应用程序在包含特制字符串的用户输入上调用unserialize(), 则禁用反序列化功能以防止远程执行代码.

参见 [[CVE-2020-15148]].

public void __wakeup ( )
current() public 方法

返回当前数据集.

接口 Iterator 需要此方法.

public mixed current ( )
return mixed

当前数据集.

fetchData() protected 方法

获取下一批数据.

protected array fetchData ( )
return array

提取的数据.

throws yii\db\Exception
getRows() protected 方法 (可用自版本: 2.0.23)

读取并收集行以进行批处理.

protected array getRows ( )
key() public 方法

返回当前数据集的索引.

接口 Iterator 需要此方法.

public integer key ( )
return integer

当前行的索引.

next() public 方法

将内部指针移动到下一个数据集.

接口 Iterator 需要此方法.

public void next ( )
reset() public 方法

重置批量查询.

此方法将清除现有的批处理查询, 以便可以执行新的批处理查询.

public void reset ( )
rewind() public 方法

将迭代器重置为初始状态.

接口 Iterator 需要此方法.

public void rewind ( )
valid() public 方法

返回当前位置是否存在有效的数据集.

接口 Iterator 需要此方法.

public boolean valid ( )
return boolean

当前位置是否有一个有效的数据集.