OCI8 関数
PHP Manual

oci_fetch_array

(PHP 5, PECL oci8 >= 1.1.0)

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

説明

array oci_fetch_array ( resource $statement [, int $mode ] )

次の結果行に相当する配列を返します。

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

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

パラメータ

statement

有効な OCI ステートメント ID。

mode

オプションの第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 の値を返します。

デフォルトの modeOCI_BOTH です。

返り値

連想配列あるいは配列の両方を返します。 失敗時あるいは結果行がない場合は FALSE を返します。

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

注意: 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 ($statementOCI_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 ($statementOCI_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 ($statementOCI_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 関数
PHP Manual