PHP マニュアル
前のページ |  | 次のページ

# sesam_fetch_row

(PHP 3 CVS only)

sesam_fetch_row -- 1件分のレコードを配列として取得

## 説明

array sesam_fetch_row ( string result_id, int `[whence]`, int `[offset]`)

取得したレコードを含む配列またはもうレコードがない場合に `FALSE` を返します。

結果集合のカラム数が連想配列の要素 $array["count"] で返されます。 いくつかのカラムは空である可能性があるため、 sesam_fetch_row() により返された結果レコードに 対して count() 関数を使用することはできません。

`result_id` は、 sesam_query() (select 型クエリのみ!)により返さ れた有効な結果IDです。

`whence`は、"スクロール型"カーソルで取得処理 を行うためのオプションパラメータで、次のような定義済みの定数を設 定することが可能です。

表 1`"whence"` パラメータで有効な値

値 | 定数 | 意味
--- | --- | ---
0 | `SESAM_SEEK_NEXT` | 連続的に読み込む(取得後、内部デフォルト値は `SESAM_SEEK_NEXT`に設定されます)
1 | `SESAM_SEEK_PRIOR` | 連続的に後向きに読み込む (取得後、内部デフォルト値は `SESAM_SEEK_PRIOR`に設定されます)
2 | `SESAM_SEEK_FIRST` | 最初のレコードに移動(取得後、デフォルト値は `SESAM_SEEK_NEXT`に設定されます)
3 | `SESAM_SEEK_LAST` | 最後のレコードに移動 (取得後、デフォルト値は `SESAM_SEEK_PRIOR`に設定されます)
4 | `SESAM_SEEK_ABSOLUTE` | `offset` (0が先頭。取得後、内部デフォル ト値は、`SESAM_SEEK_ABSOLUTE` に設定して下 さい。内部のオフセット値は、自動的に増加します)で指定した絶 対レコード番号に移動します。
5 | `SESAM_SEEK_RELATIVE` | カレントのスクロール位置に対して相対位置に移動。ただし、 `offset` は正または負の値を指定可能です。

このパラメータは、"スクロール型"カーソルでのみ有効です。

"スクロール型"カーソルを使用している場合、カーソルは結果集合を自 由に移動可能です。`whence` パラメータが省略 された場合、スクロールの型には、グローバルなデフォルト値 (`SESAM_SEEK_NEXT`に初期化されており、 sesam_seek_row()で設定可能です) が使用されます。 `whence` が指定された場合、その値はグローバ ルデフォルト値に置換されます。

`offset` は、オプションのパラメータであり、 `whence` が `SESAM_SEEK_RELATIVE` または `SESAM_SEEK_ABSOLUTE` のどちらかである場合にのみ 評価されます(そして必要とされます)。このパラメータは、"スクロール 型"カーソルでのみ有効です。

sesam_fetch_row() は、指定した結果IDが指す結果 から1件分のレコードのデータを取得します。レコードは、( `0` から `$array["count"]-1` を 添字とした)配列として返されます。フィールドは空である可能性がある ため、PHP の isset() 関数を使用してフィールド の存在を確認する必要があります。返されるフィールドの型は、そのカ ラムを宣言したSQL型に依存します。(適用される変換については、SESAMの概要 を参照下さい。 SESAM "複数フィールド" は "インライン化" されており、連続するカラ ムのように処理されます。

sesam_fetch_row() を連けてコールした場合、結果 集合の次の(スクロール属性に応じて前またはn番目の前/後)レコードま たはレコードがもうない場合に `FALSE`を返します。

例 1SESAM レコードを取得
    <?php
    $result = sesam_query ("SELECT * FROM phone\n".
                           "  WHERE LASTNAME='".strtoupper($name)."'\n".
                           "  ORDER BY FIRSTNAME", 1);
    if (!$result) {
        ... error ...
    }
    // print the table in backward order
    print "<TABLE BORDER>\n";
    $row = sesam_fetch_row ($result, SESAM_SEEK_LAST);
    while (is_array ($row)) {
        print " <TR>\n";
        for ($col = 0; $col < $row["count"]; ++$col) {
            print "  <TD>".htmlspecialchars ($row[$col])."</TD>\n";
        }
        print " </TR>\n";
        // use implied SESAM_SEEK_PRIOR
        $row = sesam_fetch_row ($result);
    }
    print "</TABLE>\n";
    sesam_free_result ($result);
    ?>

連想配列を返す sesam_fetch_array()、そして、 一度に多くのレコードを返す sesam_fetch_result() も参照下さい。

前のページ | ホーム | 次のページ
sesam_fetch_result | 上に戻る | sesam_field_array