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

# oci_fetch_array

(PHP 5)

oci_fetch_array -- 結果データ空の次の行を連想配列または配列、またはその両方で返す

## 説明

array oci_fetch_array ( resource statement [, int mode] )

次の結果行に相当する配列を返します。失敗時あるいは結果行がない場合は `FALSE` を返します。

oci_fetch_array() は連想配列あるいは配列の両方を返します。

> 注意: この関数は、 NULL フィールドに PHPの `NULL` 値を設定します。

オプションの第2引数は、次の定数の組み合わせが可能です。

`OCI_BOTH` - 連想配列と配列の両方を返します (`OCI_ASSOC` + `OCI_NUM` と同等)。 これはデフォルトの動作です。
`OCI_ASSOC` - 連想配列を返します (oci_fetch_assoc() と同等)。
`OCI_NUM` - 配列を返します (oci_fetch_row() と同等)。
`OCI_RETURN_NULLS` - フィールドが `NULL` の場合、 空の要素を返します。
`OCI_RETURN_LOBS` - ディスクリプタの LOB の値を返します。

デフォルトの `mode` は `OCI_BOTH` です。

ここで言っておくべき事は、oci_fetch_array() は oci_fetch_row() よりも 無意味に 遅い、ということですが、非常に使いやすい関数です。

> 注意: Oracle は全てのフィールド名を大文字で返し、 結果の連想配列のインデックスも大文字になります。

例 1. `OCI_BOTH` を使った oci_fetch_array() の例

`<?php $connection = oci_connect("apelsin", "kanistra"); $query = "SELECT id, name FROM fruits"; $statement = oci_parse ($connection, $query); oci_execute ($statement); while ($row = oci_fetch_array ($statement, OCI_BOTH)) { echo $row[0]." and ".$row['ID']." is the same<br>"; echo $row[1]." and ".$row['NAME']." is the same<br>"; } ?>`

例 2. `OCI_NUM` を使った oci_fetch_array() の例

`<?php $connection = oci_connect("user", "password"); $query = "SELECT id, name, lob_field FROM fruits"; $statement = oci_parse ($connection, $query); oci_execute ($statement); while ($row = oci_fetch_array ($statement, OCI_NUM)) { echo $row[0]."<br>"; echo $row[1]."<br>"; echo $row[2]->read(100)."<br>"; //this will output first 100 bytes from LOB } ?>`

例 3. `OCI_ASSOC` を使った oci_fetch_array() の例

`<?php $connection = oci_connect("user", "password"); $query = "SELECT id, name, lob_field FROM fruits"; $statement = oci_parse ($connection, $query); oci_execute ($statement); while ($row = oci_fetch_array ($statement, OCI_ASSOC)) { echo $row['ID']."<br>"; echo $row['NAME']."<br>"; echo $row['LOB_FIELD']."<br>"; //this will output "Object id #1" } ?>`

例 4. `OCI_RETURN_LOBS` を使った oci_fetch_array() の例

`<?php $connection = oci_connect("user", "password"); $query = "SELECT id, name, lob_field FROM fruits"; $statement = oci_parse ($connection, $query); oci_execute ($statement); while ($row = oci_fetch_array ($statement, (OCI_NUM+OCI_RETURN_LOBS))) { echo $row[0]."<br>"; echo $row[1]."<br>"; echo $row['LOB_FIELD']."<br>"; //this will output LOB's content } ?>`

oci8 ドライバによるデータ型マッピングの 詳細については、ドライバが サポートするデータ型 を参照ください。

oci_fetch_assoc(), oci_fetch_object(), oci_fetch_row(), oci_fetch_all() も参照ください。

前のページ | ホーム | 次のページ
oci_fetch_all | 上に戻る | oci_fetch_assoc