db2_fetch_row
(PECL)
db2_fetch_row --
結果セットポインタを次の行あるいは要求された行に設定する
パラメータ
stmt
有効な stmt リソース。
row_number
スクロール可能なカーソルの場合に、結果セットの行番号を指定します。
行番号は 1 から始まります。
返り値
結果セットに指定した行が存在する場合に TRUE、存在しない場合に
FALSE を返します。
例
例 1. 結果セットを順に処理する
次の例では、db2_fetch_row()
を使用して結果セットを順に処理し、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"; } ?>
|
上の例の出力は以下となります。 cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride |
|
例 2. i5/OS recommended alternatives to db2_fetch_row/db2_result
i5/OS では、db2_fetch_row()/db2_result()
ではなく db2_fetch_both()、
db2_fetch_array() あるいは db2_fetch_object()
を使用することを推奨します。一般に
db2_fetch_row()/db2_result() は、さまざまなカラム型で
EBCIDIC から ASCII への変換の際に問題が発生します。
DBCS アプリケーションではデータが切り捨てられてしまう可能性もあります。
また、パフォーマンス面でも db2_fetch_both()、
db2_fetch_array() および db2_fetch_object()
は 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); ?>
|
上の例の出力は以下となります。 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 |
|