Spec-Zone.ru › Yii 1.1

CDbDataReader

Пакет system.db
Наследование класс CDbDataReader » CComponent
Реализует Iterator, Traversable, Countable
С 1.0
Исходный код framework/db/CDbDataReader.php
CDbDataReader представляет собой однонаправленный поток строк из набора результатов запроса.

Для чтения текущей строки данных, вызовите read. Метод readAll возвращает все строки в одном массиве.

Также можно получить строки данных в CDbDataReader, используя цикл foreach:
foreach($reader as $row)
    // $row represents a row of data
Так как CDbDataReader является однонаправленным потоком, вы можете пройтись по нему только один раз.

Можно использовать определённый режим извлечения данных, установив FetchMode. Более подробную информацию см. на http://www.php.net/manual/en/function.PDOStatement-setFetchMode.php.

Свойства общего доступа

Свойство Тип Описание Определено в
columnCount целое Возвращает количество столбцов в наборе результатов. CDbDataReader
isClosed boolean является ли читатель закрытым или нет. CDbDataReader
rowCount целое Возвращает количество строк в наборе результатов. CDbDataReader

Методы общего доступа

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. CComponent
__construct() Конструктор. CDbDataReader
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в null. CComponent
asa() Возвращает объект поведения с указанным именем. CComponent
attachBehavior() Прикрепляет поведение к компоненту. CComponent
attachBehaviors() Прикрепляет список поведений к компоненту. CComponent
attachEventHandler() Прикрепляет обработчик событий к событию. CComponent
bindColumn() Связывает столбец с PHP-переменной. CDbDataReader
canGetProperty() Определяет, можно ли прочитать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
close() Закрывает читатель. CDbDataReader
count() Возвращает количество строк в наборе результатов. CDbDataReader
current() Возвращает текущую строку. CDbDataReader
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает присоединённое поведение. CComponent
disableBehaviors() Отключает все присоединённые поведения данного компонента. CComponent
enableBehavior() Включает присоединённое поведение. CComponent
enableBehaviors() Включает все присоединённые поведения данного компонента. CComponent
evaluateExpression() Вычисляет PHP-выражение или обратный вызов в контексте данного компонента. CComponent
getColumnCount() Возвращает количество столбцов в наборе результатов. CDbDataReader
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
getIsClosed() является ли читатель закрытым или нет. CDbDataReader
getRowCount() Возвращает количество строк в наборе результатов. CDbDataReader
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли присоединённые обработчики для указанного события. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
key() Возвращает индекс текущей строки. CDbDataReader
next() Перемещает внутренний указатель к следующей строке. CDbDataReader
nextResult() Перемещает читатель к следующему результату при чтении результатов пакетных инструкций. CDbDataReader
raiseEvent() Вызывает событие. CComponent
read() Перемещает читатель к следующей строке в наборе результатов. CDbDataReader
readAll() Считывает весь набор результатов в массив. CDbDataReader
readColumn() Возвращает один столбец из следующей строки набора результатов. CDbDataReader
readObject() Возвращает объект, заполненный следующей строкой данных. CDbDataReader
rewind() Возвращает итератор в начальное состояние. CDbDataReader
setFetchMode() Устанавливает режим извлечения по умолчанию для данного объекта CDbDataReader
valid() Возвращает, есть ли строка данных в текущей позиции. CDbDataReader

Подробное описание свойств

columnCount свойство только для чтения

public integer getColumnCount()

Возвращает количество столбцов в наборе результатов. Обратите внимание, даже если в читателе нет строк, это всё равно даёт правильное количество столбцов.

isClosed свойство только для чтения

public boolean getIsClosed()

является ли читатель закрытым или нет.

rowCount свойство только для чтения

public integer getRowCount()

Возвращает количество строк в наборе результатов. Обратите внимание, что многие СУБД могут не предоставить осмысленного счётчика. В этом случае используйте «SELECT COUNT(*) FROM tableName», чтобы получить количество строк.

Подробное описание методов

__construct() метод

public void __construct(CDbCommand $command)
$command CDbCommand команда, генерирующая результат запроса
Исходный код: framework/db/CDbDataReader.php#48 (показать)
public function __construct(CDbCommand $command)
{
    
$this->_statement=$command->getPdoStatement();
    
$this->_statement->setFetchMode(PDO::FETCH_ASSOC);
}

Конструктор.

bindColumn() метод

public void bindColumn(mixed $column, mixed &$value, integer $dataType=NULL)
$column mixed Номер столбца (индексируется с 1) или имя столбца в наборе результатов. При использовании имени столбца, обратите внимание, что имя должно соответствовать регистру имени, возвращённого драйвером.
$value mixed Имя PHP переменной, к которой будет привязан столбец.
$dataType integer Тип данных параметра
Исходный код: framework/db/CDbDataReader.php#65 (показать)
public function bindColumn($column, &$value, $dataType=null)
{
    if(
$dataType===null)
        
$this->_statement->bindColumn($column,$value);
    else
        
$this->_statement->bindColumn($column,$value,$dataType);
}

Привязывает столбец к PHP переменной. При извлечении строк данных соответствующее значение столбца будет установлено в переменной. Обратите внимание, что режим извлечения должен включать PDO::FETCH_BOUND.

См. также

  • http://www.php.net/manual/en/function.PDOStatement-bindColumn.php

close() метод

public void close()
Исходный код: framework/db/CDbDataReader.php#142 (показать)
public function close()
{
    
$this->_statement->closeCursor();
    
$this->_closed=true;
}

Закрывает reader. Это освобождает ресурсы, выделенные для выполнения данного SQL запроса. Попытки чтения после вызова этого метода могут иметь непредсказуемый результат.

count() метод

public integer count()
{return} integer количество строк в результате.
Исходный код: framework/db/CDbDataReader.php#175 (показать)
public function count()
{
    return 
$this->getRowCount();
}

Возвращает количество строк в наборе результатов. Этот метод необходим для интерфейса Countable. Обратите внимание, что большинство СУБД могут не предоставить осмысленное значение подсчёта. В этом случае используйте «SELECT COUNT(*) FROM tableName» для получения количества строк.

current() метод

public mixed current()
{return} mixed текущая строка.
Исходный код: framework/db/CDbDataReader.php#221 (показать)
public function current()
{
    return 
$this->_row;
}

Возвращает текущую строку. Этот метод требуется для интерфейса Iterator.

getColumnCount() метод

public integer getColumnCount()
{return} integer количество столбцов в наборе результатов.
Исходный код: framework/db/CDbDataReader.php#185 (показать)
public function getColumnCount()
{
    return 
$this->_statement->columnCount();
}

Возвращает количество столбцов в наборе результатов. Обратите внимание, что даже если в reader нет строк, это всё равно даёт правильное количество столбцов.

getIsClosed() метод

public boolean getIsClosed()
{return} boolean закрыт ли reader или нет.
Исходный код: framework/db/CDbDataReader.php#152 (показать)
public function getIsClosed()
{
    return 
$this->_closed;
}

закрыт ли reader или нет.

getRowCount() метод

public integer getRowCount()
{return} integer количество строк в результате.
Исходный код: framework/db/CDbDataReader.php#163 (показать)
public function getRowCount()
{
    return 
$this->_statement->rowCount();
}

Возвращает количество строк в наборе результатов. Обратите внимание, что большинство СУБД могут не предоставить осмысленное значение подсчёта. В этом случае используйте «SELECT COUNT(*) FROM tableName» для получения количества строк.

key() метод

public integer key()
{return} integer индекс текущей строки.
Исходный код: framework/db/CDbDataReader.php#211 (показать)
public function key()
{
    return 
$this->_index;
}

Возвращает индекс текущей строки. Этот метод требуется для интерфейса Iterator.

next() метод

public void next()
Исходный код: framework/db/CDbDataReader.php#230 (показать)
public function next()
{
    
$this->_row=$this->_statement->fetch();
    
$this->_index++;
}

Перемещает внутренний указатель к следующей строке. Этот метод требуется для интерфейса Iterator.

nextResult() метод

public boolean nextResult()
{return} boolean Возвращает true при успехе или false при неудаче.
Исходный код: framework/db/CDbDataReader.php#130 (показать)
public function nextResult()
{
    if((
$result=$this->_statement->nextRowset())!==false)
        
$this->_index=-1;
    return 
$result;
}

Перемещает reader к следующему результату при чтении результатов набора заявок. Этот метод полезен только в том случае, если запрос возвращает несколько наборов результатов. Не все СУБД поддерживают эту функцию.

read() метод

public array|false read()
{return} array|false текущая строка, false, если больше строк нет.
Исходный код: framework/db/CDbDataReader.php#88 (показать)
public function read()
{
    return 
$this->_statement->fetch();
}

Перемещает reader к следующей строке в наборе результатов.

readAll() метод

public array readAll()
{return} array набор результатов (каждый элемент массива представляет строку данных). Пустой массив возвращается, если результат не содержит строк.
Исходный код: framework/db/CDbDataReader.php#119 (показать)
public function readAll()
{
    return 
$this->_statement->fetchAll();
}

Считывает весь набор результатов в массив.

readColumn() метод

public mixed|false readColumn(integer $columnIndex)
$columnIndex integer индекс столбца (нумерация с 0)
{return} mixed|false столбец текущей строки, false, если больше строк нет.
Исходный код: framework/db/CDbDataReader.php#98 (показать)
public function readColumn($columnIndex)
{
    return 
$this->_statement->fetchColumn($columnIndex);
}

Возвращает один столбец из следующей строки набора результатов.

readObject() метод

public mixed|false readObject(string $className, array $fields)
$className string имя класса объекта, который будет создан и заполнен
$fields array Элементы этого массива передаются в конструктор
{return} mixed|false заполненный объект, false, если больше строк нет.
Исходный код: framework/db/CDbDataReader.php#109 (показать)
public function readObject($className,$fields)
{
    return 
$this->_statement->fetchObject($className,$fields);
}

Возвращает объект, заполненный следующей строкой данных.

rewind() метод

public void rewind()
Исходный код: framework/db/CDbDataReader.php#195 (показать)
public function rewind()
{
    if(
$this->_index<0)
    {
        
$this->_row=$this->_statement->fetch();
        
$this->_index=0;
    }
    else
        throw new 
CDbException(Yii::t('yii','CDbDataReader cannot rewind. It is a forward-only reader.'));
}

Сбрасывает итератор в начальное состояние. Этот метод необходим для интерфейса Iterator.

setFetchMode() метод

public void setFetchMode(mixed $mode)
$mode смешанный режим извлечения
Исходный код: framework/db/CDbDataReader.php#78 (показать)
public function setFetchMode($mode)
{
    
$params=func_get_args();
    
call_user_func_array(array($this->_statement,'setFetchMode'),$params);
}

Устанавливает режим извлечения по умолчанию для данного оператора.

См. также

  • http://www.php.net/manual/en/function.PDOStatement-setFetchMode.php

valid() метод

public boolean valid()
{return} boolean есть ли строка данных в текущей позиции.
Исходный код: framework/db/CDbDataReader.php#241 (показать)
public function valid()
{
    return 
$this->_row!==false;
}

Возвращает, есть ли строка данных в текущей позиции. Этот метод необходим для интерфейса Iterator.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CDbDataReader

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API