Класс yii\db\DataReader
| Наследование | yii\db\DataReader » yii\base\Object |
|---|---|
| Реализует | Countable, Iterator, yii\base\Configurable |
| Доступна с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/db/DataReader.php |
DataReader представляет собой однонаправленный поток строк из набора результатов запроса.
Для чтения текущей строки данных вызовите read(). Метод readAll() возвращает все строки в одном массиве. Строки данных также можно читать, перебирая reader. Например,
$command = $connection->createCommand('SELECT * FROM post');
$reader = $command->query();
while ($row = $reader->read()) {
$rows[] = $row;
}
// equivalent to:
foreach ($reader as $row) {
$rows[] = $row;
}
// equivalent to:
$rows = $reader->readAll();
Обратите внимание, что поскольку DataReader является однонаправленным потоком, вы можете пройтись по нему только один раз. Повторный проход вызовет исключение.
Можно использовать определённый режим извлечения данных, задав $fetchMode. Для получения более подробной информации о возможных режимах извлечения данных см. справочник PHP.
Свойства Public
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $columnCount | integer | Количество столбцов в наборе результатов. | yii\db\DataReader |
| $fetchMode | integer | Режим извлечения | yii\db\DataReader |
| $isClosed | boolean | Закрыт ли reader. | yii\db\DataReader |
| $rowCount | integer | Количество строк в результате. | yii\db\DataReader |
Методы Public
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __construct() | Конструктор. | yii\db\DataReader |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| bindColumn() | Связывает столбец с PHP переменной. | yii\db\DataReader |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| close() | Закрывает reader. | yii\db\DataReader |
| count() | Возвращает количество строк в наборе результатов. | yii\db\DataReader |
| current() | Возвращает текущую строку. | yii\db\DataReader |
| getColumnCount() | Возвращает количество столбцов в наборе результатов. | yii\db\DataReader |
| getIsClosed() | Закрыт ли reader. | yii\db\DataReader |
| getRowCount() | Возвращает количество строк в наборе результатов. | yii\db\DataReader |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\base\Object |
| key() | Возвращает индекс текущей строки. | yii\db\DataReader |
| next() | Перемещает внутренний указатель на следующую строку. | yii\db\DataReader |
| nextResult() | Перемещает reader к следующему результату при чтении результатов набора инструкций. | yii\db\DataReader |
| read() | Перемещает reader к следующей строке в наборе результатов. | yii\db\DataReader |
| readAll() | Читает весь набор результатов в массив. | yii\db\DataReader |
| readColumn() | Возвращает единственный столбец из следующей строки набора результатов. | yii\db\DataReader |
| readObject() | Возвращает объект, заполненный следующей строкой данных. | yii\db\DataReader |
| rewind() | Возвращает итератор в начальное состояние. | yii\db\DataReader |
| setFetchMode() | Устанавливает режим извлечения по умолчанию для этого оператора. | yii\db\DataReader |
| valid() | Возвращает true, если в текущей позиции есть строка данных, иначе false. | yii\db\DataReader |
Подробное описание свойств
$columnCount свойство public только для чтения
Количество столбцов в наборе результатов.
public integer getColumnCount ( )
$fetchMode свойство public только для записи
Режим извлечения
public void setFetchMode ( $mode )
$isClosed свойство public только для чтения
Закрыт ли reader.
public boolean getIsClosed ( )
$rowCount свойство public только для чтения
Количество строк в результате.
public integer getRowCount ( )
Подробное описание методов
__construct() public method
Конструктор.
| public void __construct ( yii\db\Command $command, $config = [] ) | ||
|---|---|---|
| $command | yii\db\Command |
Команда, генерирующая результат запроса |
| $config | array |
Пара имя-значение, используемые для инициализации свойств объекта |
bindColumn() public method
Связывает столбец с PHP-переменной.
Когда извлекаются строки данных, соответствующее значение столбца будет установлено в переменной. Обратите внимание, что режим извлечения должен включать PDO::FETCH_BOUND.
См. также http://www.php.net/manual/en/function.PDOStatement-bindColumn.php.
| public void bindColumn ( $column, &$value, $dataType = null ) | ||
|---|---|---|
| $column | integer|string |
Номер столбца (индексируется с 1) или имя столбца в наборе результатов. При использовании имени столбца, обратите внимание, что имя должно соответствовать регистру имени столбца, возвращаемого драйвером. |
| $value | mixed |
Имя PHP-переменной, к которой будет связан столбец. |
| $dataType | integer |
Тип данных параметра |
close() public method
Закрывает чтец.
Это освобождает ресурсы, выделенные для выполнения этого SQL-запроса. Попытки чтения после вызова этого метода непредсказуемы.
| public void close ( ) |
|---|
count() public method
Возвращает количество строк в наборе результатов.
Этот метод требуется интерфейсом Countable. Обратите внимание, что большинство СУБД могут не предоставлять осмысленное значение подсчета. В этом случае используйте «SELECT COUNT(*) FROM tableName» для получения количества строк.
| public integer count ( ) | ||
|---|---|---|
| return | integer |
Количество строк в результате. |
current() public method
Возвращает текущую строку.
Этот метод требуется интерфейсом Iterator.
| public mixed current ( ) | ||
|---|---|---|
| return | mixed |
Текущая строка. |
getColumnCount() public method
Возвращает количество столбцов в наборе результатов.
Обратите внимание, что даже если в читателе нет строк, это все равно дает правильное количество столбцов.
| public integer getColumnCount ( ) | ||
|---|---|---|
| return | integer |
Количество столбцов в наборе результатов. |
getIsClosed() public method
Закрыт ли чтец.
| public boolean getIsClosed ( ) | ||
|---|---|---|
| return | boolean |
Закрыт ли чтец. |
getRowCount() public method
Возвращает количество строк в наборе результатов.
Обратите внимание, что большинство СУБД могут не предоставлять осмысленное значение подсчета. В этом случае используйте «SELECT COUNT(*) FROM tableName» для получения количества строк.
| public integer getRowCount ( ) | ||
|---|---|---|
| return | integer |
Количество строк в результате. |
key() public method
Возвращает индекс текущей строки.
Этот метод требуется интерфейсом Iterator.
| public integer key ( ) | ||
|---|---|---|
| return | integer |
Индекс текущей строки. |
next() public method
Перемещает внутренний указатель на следующую строку.
Этот метод требуется интерфейсом Iterator.
| public void next ( ) |
|---|
nextResult() public method
Перемещает чтец к следующему результату при чтении результатов набора инструкций.
Этот метод полезен только в том случае, если запрос возвращает несколько наборов результатов. Не все СУБД поддерживают эту функцию.
| public boolean nextResult ( ) | ||
|---|---|---|
| return | boolean |
Возвращает true при успехе или false при неудаче. |
read() public method
Перемещает чтец к следующей строке в наборе результатов.
| public array read ( ) | ||
|---|---|---|
| return | array |
Текущая строка, false, если больше строк нет. |
readAll() public method
Считывает весь набор результатов в массив.
| public array readAll ( ) | ||
|---|---|---|
| return | array |
Набор результатов (каждый элемент массива представляет собой строку данных). Пустой массив будет возвращен, если результат не содержит строк. |
readColumn() public method
Возвращает один столбец из следующей строки набора результатов.
| public mixed readColumn ( $columnIndex ) | ||
|---|---|---|
| $columnIndex | integer |
Индекс столбца (нумерация с 0) |
| return | mixed |
Столбец текущей строки, false, если больше строк нет. |
readObject() public method
Возвращает объект, заполненный следующей строкой данных.
| public mixed readObject ( $className, $fields ) | ||
|---|---|---|
| $className | string |
Имя класса создаваемого и заполняемого объекта |
| $fields | array |
Элементы этого массива передаются в конструктор |
| return | mixed |
Заполненный объект, false, если больше строк данных нет. |
rewind() public method
Возвращает итератор в начальное состояние.
Этот метод требуется интерфейсом Iterator.
| public void rewind ( ) | ||
|---|---|---|
| throws | yii\base\InvalidCallException |
если этот метод вызывается дважды |
setFetchMode() public method
Устанавливает режим извлечения по умолчанию для данного оператора
См. также http://www.php.net/manual/en/function.PDOStatement-setFetchMode.php.
| public void setFetchMode ( $mode ) | ||
|---|---|---|
| $mode | integer |
Режим извлечения |
valid() public method
Возвращает, есть ли строка данных в текущей позиции.
Этот метод требуется интерфейсом Iterator.
| public boolean valid ( ) | ||
|---|---|---|
| return | boolean |
Есть ли строка данных в текущей позиции. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-db-datareader.html