CDbDataReader
| Package |
system.db |
| Inheritance |
class CDbDataReader »
CComponent |
| Implements |
Iterator, Traversable |
| Since |
1.0 |
| Version |
$Id: CDbDataReader.php 1678 2010-01-07 21:02:00Z qiang.xue $ |
CDbDataReader represents a forward-only stream of rows from a query result set.
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 data
Since 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
Hide inherited properties
| Property | Type | Description | Defined By |
| columnCount |
int |
the number of columns in the result set. |
CDbDataReader |
| isClosed |
boolean |
whether the reader is closed or not. |
CDbDataReader |
| rowCount |
int |
number of rows contained in the result. |
CDbDataReader |
Property Details
columnCount
the number of columns in the result set.
Note, even there's no row in the reader, this still gives correct column number.
whether the reader is closed or not.
number of rows contained in the result.
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
|
|
| $command |
CDbCommand |
the command generating the query result |
Constructor.
bindColumn()
|
public void bindColumn(mixed $column, mixed $value, int $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 |
int |
Data type of the parameter |
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.
Closes the reader.
This frees up the resources allocated for executing this SQL statement.
Read attemps after this method call are unpredictable.
|
public mixed current()
|
| {return} |
mixed |
the current row. |
Returns the current row.
This method is required by the interface Iterator.
getColumnCount()
|
public int getColumnCount()
|
| {return} |
int |
the number of columns in the result set.
Note, even there's no row in the reader, this still gives correct column number. |
|
public boolean getIsClosed()
|
| {return} |
boolean |
whether the reader is closed or not. |
|
public int getRowCount()
|
| {return} |
int |
number of rows contained in the result.
Note, most DBMS may not give a meaningful count.
In this case, use "SELECT COUNT(*) FROM tableName" to obtain the number of rows. |
|
public integer key()
|
| {return} |
integer |
the index of the current row. |
Returns the index of the current row.
This method is required by the interface Iterator.
Moves the internal pointer to the next row.
This method is required by the interface Iterator.
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.
|
public array|false read()
|
| {return} |
array|false |
the current row, false if no more row available |
Advances the reader to the next row in a result set.
|
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. |
Reads the whole result set into an array.
readColumn()
|
public mixed|false readColumn(int $columnIndex)
|
| $columnIndex |
int |
zero-based column index |
| {return} |
mixed|false |
the column of the current row, false if no more row available |
Returns a single column from the next row of a result set.
|
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 |
Returns an object populated with the next row of data.
Resets the iterator to the initial state.
This method is required by the interface Iterator.
|
public void setFetchMode($mode)
|
| $mode |
|
|
|
public boolean valid()
|
| {return} |
boolean |
whether there is a row of data at current position. |
Returns whether there is a row of data at current position.
This method is required by the interface Iterator.