Руководство по PHP
Пред. |  | След.

# oci_fetch_array

(PHP 5)

oci_fetch_array -- Возвращает следующую строку из результата запроса в виде ассоциативного массива, числового массива или оба сразу

## Описание

array oci_fetch_array ( resource statement [, int mode] )

Возвращает массив, который соответствует строке из результата запроса или `FALSE`, если строк в результате больше не осталось.

По умолчанию, oci_fetch_array() возвращает массив с ассоциативными и числовыми индексами.

Необязательный второй параметр может принимать значение одной или суммы из нескольких констант. Вы можете использовать следующие константы:

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

Нужно также упомянуть тот факт, что oci_fetch_array() незначительно медленней, чем oci_fetch_row(), но предоставляет более гибкий интерфейс.

> Замечание: Вам не следует забывать о том, что Oracle возвращает имена полей в ВЕРХНЕМ регистре, поэтому индексы ассоциативного массива будут также в ВЕРХНЕМ регистре.

Пример 1. Пример использования oci_fetch_array() с флагом OCI_BOTH

`<?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_fetch_array() с флагом OCI_NUM

`<?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_fetch_array() с флагом OCI_ASSOC

`<?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['ID']."<br>"; echo $row['NAME']."<br>"; echo $row['LOB_FIELD']."<br>"; //this will output "Object id #1" } ?>`

Пример 4. Пример использования oci_fetch_array() с флагом OCI_RETURN_LOBS

`<?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['LOB_FIELD']."<br>"; //this will output LOB's content } ?>`

См. также oci_fetch_assoc(), oci_fetch_object(), oci_fetch_row() и oci_fetch_all().

Пред. | Начало | След.
oci_fetch_all | Уровень выше | oci_fetch_assoc