(PHP 5, PECL oci8:1.1-1.2.4)
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 возвращает имена полей в ВЕРХНЕМ регистре, поэтому индексы ассоциативного массива будут также в ВЕРХНЕМ регистре.
Пример использования 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>";
}
?>
Пример использования 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
}
?>
Пример использования 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"
}
?>
Пример использования 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().