CDbDataReader
Package | system.db |
---|---|
Inheritance | class CDbDataReader » CComponent |
Implements | Iterator, Traversable, Countable |
Since | 1.0 |
Source Code | framework/db/CDbDataReader.php |
To read the current row of data, call read. The method readAll returns all the rows in a single array.
One can also retrieve the rows of data in CDbDataReader by using foreach:
foreach($reader as $row) // $row represents a row of dataSince CDbDataReader is a forward-only stream, you can only traverse it once.
It is possible to use a specific mode of data fetching by setting FetchMode. See http://www.php.net/manual/en/function.PDOStatement-setFetchMode.php for more details.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
columnCount | integer | Returns the number of columns in the result set. | CDbDataReader |
isClosed | boolean | whether the reader is closed or not. | CDbDataReader |
rowCount | integer | Returns the number of rows in the result set. | CDbDataReader |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__construct() | Constructor. | CDbDataReader |
__get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent |
__isset() | Checks if a property value is null. | CComponent |
__set() | Sets value of a component property. | CComponent |
__unset() | Sets a component property to be null. | CComponent |
asa() | Returns the named behavior object. | CComponent |
attachBehavior() | Attaches a behavior to this component. | CComponent |
attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
attachEventHandler() | Attaches an event handler to an event. | CComponent |
bindColumn() | Binds a column to a PHP variable. | CDbDataReader |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
close() | Closes the reader. | CDbDataReader |
count() | Returns the number of rows in the result set. | CDbDataReader |
current() | Returns the current row. | CDbDataReader |
detachBehavior() | Detaches a behavior from the component. | CComponent |
detachBehaviors() | Detaches all behaviors from the component. | CComponent |
detachEventHandler() | Detaches an existing event handler. | CComponent |
disableBehavior() | Disables an attached behavior. | CComponent |
disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
enableBehavior() | Enables an attached behavior. | CComponent |
enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
getColumnCount() | Returns the number of columns in the result set. | CDbDataReader |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
getIsClosed() | whether the reader is closed or not. | CDbDataReader |
getRowCount() | Returns the number of rows in the result set. | CDbDataReader |
hasEvent() | Determines whether an event is defined. | CComponent |
hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
hasProperty() | Determines whether a property is defined. | CComponent |
key() | Returns the index of the current row. | CDbDataReader |
next() | Moves the internal pointer to the next row. | CDbDataReader |
nextResult() | Advances the reader to the next result when reading the results of a batch of statements. | CDbDataReader |
raiseEvent() | Raises an event. | CComponent |
read() | Advances the reader to the next row in a result set. | CDbDataReader |
readAll() | Reads the whole result set into an array. | CDbDataReader |
readColumn() | Returns a single column from the next row of a result set. | CDbDataReader |
readObject() | Returns an object populated with the next row of data. | CDbDataReader |
rewind() | Resets the iterator to the initial state. | CDbDataReader |
setFetchMode() | Set the default fetch mode for this statement | CDbDataReader |
valid() | Returns whether there is a row of data at current position. | CDbDataReader |
Property Details
columnCount property read-only
public integer getColumnCount()
Returns the number of columns in the result set. Note, even there's no row in the reader, this still gives correct column number.
isClosed property read-only
public boolean getIsClosed()
whether the reader is closed or not.
rowCount property read-only
public integer getRowCount()
Returns the number of rows in the result set. Note, most DBMS may not give a meaningful count. In this case, use "SELECT COUNT(*) FROM tableName" to obtain the number of rows.
Method Details
__construct() method
public void __construct(CDbCommand $command) | ||
$command | CDbCommand | the command generating the query result |
public function __construct(CDbCommand $command)
{
$this->_statement=$command->getPdoStatement();
$this->_statement->setFetchMode(PDO::FETCH_ASSOC);
}
Constructor.
bindColumn() method
public void bindColumn(mixed $column, mixed &$value, integer $dataType=NULL) | ||
$column | mixed | Number of the column (1-indexed) or name of the column in the result set. If using the column name, be aware that the name should match the case of the column, as returned by the driver. |
$value | mixed | Name of the PHP variable to which the column will be bound. |
$dataType | integer | Data type of the parameter |
public function bindColumn($column, &$value, $dataType=null)
{
if($dataType===null)
$this->_statement->bindColumn($column,$value);
else
$this->_statement->bindColumn($column,$value,$dataType);
}
Binds a column to a PHP variable. When rows of data are being fetched, the corresponding column value will be set in the variable. Note, the fetch mode must include PDO::FETCH_BOUND.
close() method
public void close() |
public function close()
{
$this->_statement->closeCursor();
$this->_closed=true;
}
Closes the reader. This frees up the resources allocated for executing this SQL statement. Read attempts after this method call are unpredictable.
count() method
public integer count() | ||
{return} | integer | number of rows contained in the result. |
public function count()
{
return $this->getRowCount();
}
Returns the number of rows in the result set. This method is required by the Countable interface. Note, most DBMS may not give a meaningful count. In this case, use "SELECT COUNT(*) FROM tableName" to obtain the number of rows.
current() method
public mixed current() | ||
{return} | mixed | the current row. |
public function current()
{
return $this->_row;
}
Returns the current row. This method is required by the interface Iterator.
getColumnCount() method
public integer getColumnCount() | ||
{return} | integer | the number of columns in the result set. |
public function getColumnCount()
{
return $this->_statement->columnCount();
}
Returns the number of columns in the result set. Note, even there's no row in the reader, this still gives correct column number.
getIsClosed() method
public boolean getIsClosed() | ||
{return} | boolean | whether the reader is closed or not. |
public function getIsClosed()
{
return $this->_closed;
}
whether the reader is closed or not.
getRowCount() method
public integer getRowCount() | ||
{return} | integer | number of rows contained in the result. |
public function getRowCount()
{
return $this->_statement->rowCount();
}
Returns the number of rows in the result set. Note, most DBMS may not give a meaningful count. In this case, use "SELECT COUNT(*) FROM tableName" to obtain the number of rows.
key() method
public integer key() | ||
{return} | integer | the index of the current row. |
public function key()
{
return $this->_index;
}
Returns the index of the current row. This method is required by the interface Iterator.
next() method
public void next() |
public function next()
{
$this->_row=$this->_statement->fetch();
$this->_index++;
}
Moves the internal pointer to the next row. This method is required by the interface Iterator.
nextResult() method
public boolean nextResult() | ||
{return} | boolean | Returns true on success or false on failure. |
public function nextResult()
{
if(($result=$this->_statement->nextRowset())!==false)
$this->_index=-1;
return $result;
}
Advances the reader to the next result when reading the results of a batch of statements. This method is only useful when there are multiple result sets returned by the query. Not all DBMS support this feature.
read() method
public array|false read() | ||
{return} | array|false | the current row, false if no more row available |
public function read()
{
return $this->_statement->fetch();
}
Advances the reader to the next row in a result set.
readAll() method
public array readAll() | ||
{return} | array | the result set (each array element represents a row of data). An empty array will be returned if the result contains no row. |
public function readAll()
{
return $this->_statement->fetchAll();
}
Reads the whole result set into an array.
readColumn() method
public mixed|false readColumn(integer $columnIndex) | ||
$columnIndex | integer | zero-based column index |
{return} | mixed|false | the column of the current row, false if no more row available |
public function readColumn($columnIndex)
{
return $this->_statement->fetchColumn($columnIndex);
}
Returns a single column from the next row of a result set.
readObject() method
public mixed|false readObject(string $className, array $fields) | ||
$className | string | class name of the object to be created and populated |
$fields | array | Elements of this array are passed to the constructor |
{return} | mixed|false | the populated object, false if no more row of data available |
public function readObject($className,$fields)
{
return $this->_statement->fetchObject($className,$fields);
}
Returns an object populated with the next row of data.
rewind() method
public void rewind() |
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.'));
}
Resets the iterator to the initial state. This method is required by the interface Iterator.
setFetchMode() method
public void setFetchMode(mixed $mode) | ||
$mode | mixed | fetch mode |
public function setFetchMode($mode)
{
$params=func_get_args();
call_user_func_array(array($this->_statement,'setFetchMode'),$params);
}
Set the default fetch mode for this statement
valid() method
public boolean valid() | ||
{return} | boolean | whether there is a row of data at current position. |
public function valid()
{
return $this->_row!==false;
}
Returns whether there is a row of data at current position. This method is required by the interface Iterator.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CDbDataReader