db2_fetch_row
(PECL ibm_db2 >= 1.0.0)
db2_fetch_row —
Sets the result set pointer to the next row or requested row
Description
Use db2_fetch_row() to iterate through a result set, or
to point to a specific row in a result set if you requested a scrollable
cursor.
To retrieve individual fields from the result set, call the
db2_result() function.
Rather than calling db2_fetch_row() and
db2_result() , most applications will call one of
db2_fetch_assoc() , db2_fetch_both() ,
or db2_fetch_array() to advance the result set pointer
and return a complete row as an array.
Parameters
stmt
A valid stmt resource.
row_number
With scrollable cursors, you can request a specific row number in the
result set. Row numbering is 1-indexed.
Return Values
Returns true if the requested row exists in the result set. Returns
false if the requested row does not exist in the result set.
Examples
Example #1 Iterating through a result set
The following example demonstrates how to iterate through a result set
with db2_fetch_row() and retrieve columns from the
result set with db2_result() .
<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?' ;
$stmt = db2_prepare ( $conn , $sql );
db2_execute ( $stmt , array( 10 ));
while ( db2_fetch_row ( $stmt )) {
$name = db2_result ( $stmt , 0 );
$breed = db2_result ( $stmt , 1 );
print " $name $breed " ;
}
?>
The above example will output:
cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride
Example #2 i5/OS recommended alternatives to db2_fetch_row/db2_result
On i5/OS it is recommended that you use db2_fetch_both() ,
db2_fetch_array() , or db2_fetch_object()
over db2_fetch_row() /db2_result() . In general
db2_fetch_row() /db2_result() have more issues
with various column types in EBCDIC to ASCII
translation, including possible truncation in DBCS applications.
You may also find the performance of db2_fetch_both() ,
db2_fetch_array() , and db2_fetch_object() to
be superior to db2_fetch_row() /db2_result() .
<?php
$conn = db2_connect ( "" , "" , "" );
$sql = 'SELECT SPECIFIC_SCHEMA, SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_CREATED, ROUTINE_BODY, IN_PARMS, OUT_PARMS, INOUT_PARMS, PARAMETER_STYLE, EXTERNAL_NAME, EXTERNAL_LANGUAGE FROM QSYS2.SYSROUTINES FETCH FIRST 2 ROWS ONLY' ;
$stmt = db2_exec ( $conn , $sql , array( 'cursor' => DB2_SCROLLABLE ));
while ( $row = db2_fetch_both ( $stmt )){
echo "<br>db2_fetch_both { $row [ 'SPECIFIC_NAME' ]} { $row [ 'ROUTINE_CREATED' ]} { $row [ 5 ]} " ;
}
$stmt = db2_exec ( $conn , $sql , array( 'cursor' => DB2_SCROLLABLE ));
while ( $row = db2_fetch_array ( $stmt )){
echo "<br>db2_fetch_array { $row [ 1 ]} { $row [ 5 ]} " ;
}
$stmt = db2_exec ( $conn , $sql , array( 'cursor' => DB2_SCROLLABLE ));
while ( $row = db2_fetch_object ( $stmt )){
echo "<br>db2_fetch_object { $row -> SPECIFIC_NAME } { $row -> ROUTINE_CREATED } " ;
}
db2_close ( $conn );
?>
The above example will output:
db2_fetch_both MATCH_ANIMAL 2006-08-25-17.10.23.775000 2006-08-25-17.10.23.775000
db2_fetch_both MULTIRESULTS 2006-10-17-10.11.05.308000 2006-10-17-10.11.05.308000
db2_fetch_array MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_array MULTIRESULTS 2006-10-17-10.11.05.308000
db2_fetch_object MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_object MULTIRESULTS 2006-10-17-10.11.05.308000
See Also
db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
db2_fetch_object() - Returns an object with properties representing columns in the fetched row
db2_result() - Returns a single column from a row in the result set