The DB_result object provides two methods for fetching data from rows of a result set: fetchRow() and fetchInto().
fetchRow() returns the row's data. fetchInto() assigns the row's data to a variable you provide and returns DB_OK.
The result pointer gets moved to the next row each time these methods are called. NULL is returned when the end of the result set is reached.
DB_Error is returned if an error is encountered.
Пример 22-1. Fetching a result set
|
The data from the row of a query result can be placed into one of three constructs: an ordered array (with column numbers as keys), an associative array (with column names as keys) or an object (with column names as properties).
DB_FETCHMODE_ORDERED (default)
Array
(
[0] => 28
[1] => hi
) |
DB_FETCHMODE_ASSOC
Array
(
[a] => 28
[b] => hi
) |
DB_FETCHMODE_OBJECT
stdClass Object
(
[a] => 28
[b] => hi
) |
You can set the fetch mode each time you call a fetch method and/or you can set the default fetch mode for the whole DB instance by using the setFetchMode() method.
Пример 22-2. Determining fetch mode per call
|
Пример 22-3. Changing default fetch mode
|
The PEAR DB fetch system also supports an extra parameter to the fetch statement. So you can fetch rows from a result by number. This is especially helpful if you only want to show sets of an entire result (for example in building paginated HTML lists), fetch rows in an special order, etc.
Пример 22-4. Fetching by number
|
The DB_common object provides several methods that make data retrieval easy by combining the processes of running of the query string you provide, putting the returned information into a PHP data structure and freeing the results. These methods include getOne(), getRow(), getCol(), getAssoc() and getAll().
Once you finish using a result set, if your script continues for a while, it's a good idea to save memory by freeing the result set via Use free().
Пример 22-5. Freeing
|
With DB there are four ways to retrieve useful information about the query result sets themselves:
Пример 22-6. numRows() tells how many rows are in a SELECT query result
|
Пример 22-7. numCols() tells how many columns are in a SELECT query result
|
Пример 22-8. affectedRows() tells how many rows were altered by a data change query (INSERT, UPDATE or DELETE)
|
Пример 22-9. tableInfo() returns an associative array with information about the columns in a SELECT query result
|
| Пред. | Начало | След. |
| Introduction - Query | Уровень выше | Introduction - Prepare & Execute |
HIVE: All information for read only. Please respect copyright! |