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

# sesam_fetch_array

(PHP 3 CVS only)

sesam_fetch_array -- 連想配列としてレコードを 1 件取得する

## 説明

array sesam_fetch_array ( string result_id [, int whence [, int offset]] )

sesam_fetch_array() は、 sesam_fetch_row() の連想配列版です。データを 結果配列の数値添字に保存する代わりに、データをフィールド名を キーとして連想配列に保存します。

sesam_fetch_array() は、 指定した結果 ID が指す結果から 1 件分のレコードを取得します。 レコードは、連想配列として返されます。各結果カラムは、そのカラム (またはフィールド) 名に等しい連想配列の要素に保存されます。カラム名は、 小文字に変換されます。

フィールド名がないカラム (例えば、数値演算の結果) および空の フィールドは、配列に保存されません。また、同じカラム名にが 2 つ以上ある場合、最後のカラムが優先されます。この場合、 sesam_fetch_row() をコールするかそのカラムへの エイリアスを作成してください。

    SELECT TBL1.COL AS FOO, TBL2.COL AS BAR FROM TBL1, TBL2

特別な処理により "複数フィールド" カラム (もしくは同じカラム名を 有するカラム) を取得することが可能になります。"複数フィールド" の 各カラムに関して、添字名は、文字列 "(n)" を付加することにより 構築されます。ただし、n は複数フィールドのカラムの副添字であり、 1 から宣言済みの反復数までの範囲となります。クエリ構文で使用される 表記に一致させるために添字はゼロを基準にしていません。 次のように宣言されているあるカラムの場合、

    CREATE TABLE ... ( ... MULTI(3) INT )

個々の "複数フィールド" カラムに関して連想添字は、それぞれ `"multi(1)"`,`"multi(2)"`, `"multi(3)"` になります。

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

## パラメータ

`result_id`

  sesam_query() が返す結果 ID。

`whence`

  `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`

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

## 返り値

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

## 例

例 1. SESAM 配列の取得

`<?php
$result = sesam_query("SELECT * FROM phone\n" .
" WHERE LASTNAME='" . strtoupper($name) . "'\n".
" ORDER BY FIRSTNAME", 1);
if (!$result) {
/* ... エラー ... */
}
// テーブルの表示
echo "<table border=\"1\">\n";
while (($row = sesam_fetch_array($result)) && count($row) > 0) {
echo "<tr>\n";
echo "<td>" . htmlspecialchars($row["firstname"]) . "</td>\n";
echo "<td>" . htmlspecialchars($row["lastname"]) . "</td>\n";
echo "<td>" . htmlspecialchars($row["phoneno"]) . "</td>\n";
echo "</tr>\n";
}
echo "</table>\n";
sesam_free_result($result);
?>`

## 参考

sesam_fetch_row()

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