関数・クラス解説

db2_fetch_row

version:PECL ibm_db2 >= 1.0.0 (公式)

結果セットポインタを次の行あるいは要求された行に設定する

公式リファレンス

書式

db2_fetch_row ( resource $stmt [, int $row_number ] ) : bool

説明

db2_fetch_row() を使用して結果セットを順に処理します。 あるいは、スクロール可能なカーソルを使用している場合は 指定した行を指すようにします。

結果セットから個々のフィールドを取得するには db2_result() 関数をコールします。

db2_fetch_row() および db2_result() をコールするのではなく、 ほとんどのアプリケーションでは db2_fetch_assoc()、db2_fetch_both()、 および db2_fetch_array() のいずれかをコールするでしょう。 これらは、結果セットのポインタを前に進めたうえで行の内容を配列として取得します。

パラメータ

stmt
有効な stmt リソース。
row_number
スクロール可能なカーソルの場合に、結果セットの行番号を指定します。 行番号は 1 から始まります。

返値

結果セットに指定した行が存在する場合に TRUE、存在しない場合に FALSE を返します。

サンプル

例1 結果セットを順に処理する

次の例では、db2_fetch_row() を使用して結果セットを順に処理し、db2_result() で結果セットからカラムを取得する方法を示します。

$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() よりすぐれています。

  $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 " 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 " db2_fetch_array {$row[1]}  {$row[5]}";   }   $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));   while ($row = db2_fetch_object($stmt)){     echo " 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

参考

  • db2_fetch_array() - 結果セット内の行を表す、カラム位置をインデックスとする配列を返す
  • db2_fetch_assoc() - 結果セット内の行を表す、カラム名をインデックスとする配列を返す
  • db2_fetch_both() - 結果セット内の行を表す、 カラム位置およびカラム名の両方をインデックスとする配列を返す
  • db2_fetch_object() - 結果セット内の行を表す、カラムをプロパティとするオブジェクトを返す
  • db2_result() - 結果セットの行からひとつのカラムを返す
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール