PHP: oci_fetch_array - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

oci_fetch_assoc oci_fetch_all

Last updated: Sat, 27 Jan 2007

view this page in

# 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().

add a note User Contributed Notes
oci_fetch_array
badr at arabiadata dot com
18-Jul-2006 05:14
`generating dynamic drop down list
<SELECT name="reason" id="vacation_code">
<OPTION value=0 selected>Choose </OPTION>
<?php
$query2 = "SELECT IN_NAME, IN_CODE FROM HR_IN_REASON ";
$statement2 = oci_parse ($conn, $query2);
oci_execute ($statement2);
while ($row = oci_fetch_array ($statement2, OCI_NUM)) {
?>
<option value="<? echo $row[1]; ?>"> <? echo $row[0] ?> </option>
<? }
?>
</select>`
antonchanning at gmail dot com
18-Apr-2006 01:59
`As Robert Hicks mentioned back in August 2004 there is an error in examples 3 and 4 of this page. The error in example 3 is what dwhitaker and stry_cat address in their notes of 20 May 2005 and 9 June 2005 respectively.
The correct form of example 4 should read:
<?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_RETURN_LOBS)) {
echo $row[0]."<br>";
echo $row[1]."<br>";
echo $row['LOB_FIELD']."<br>"; //this will output LOB's content
}
?>
This really should be corrected in the actual documentation...`
stry_cat at yahoo dot com
27-Jan-2006 08:29
`If you want to get both nulls and an assoc array, you have to ADD the values like this:
$row = oci_fetch_array($stmt, OCI_RETURN_NULLS + OCI_ASSOC);
This really should be noted in the text of the manual.`
09-Jun-2005 08:13
`OCI_BOTH is the default.
If you just need to return all fields, you can leave out OCI_NUM & OCI_ASSOC.
EXAMPLE:
<?php
$connection = ocilogon("user", "password", "dbname");
$query = "SELECT id, name, lob_field FROM fruits";
$statement = oci_parse ($connection, $query);
oci_execute ($statement);
while ($row = oci_fetch_array ($statement)) {
$id = $row['ID'];
$name = $row['NAME'];
$lob_field = $row['LOB_FIELD'];
echo $id.' '.$name.' '.$lob_field;
}
?>`
dwhitaker at dfwairport dot com
20-May-2005 07:39
`Example 3 above is incorrect...
OCI_NUM should be OCI_ASSOC
So it should read something like this:
<?php
$connection = ocilogon("user", "password", "dbname");
$query = "SELECT id, name, lob_field FROM fruits";
$statement = oci_parse ($connection, $query);
oci_execute ($statement);
while ($row = oci_fetch_array ($statement, OCI_ASSOC)) {
$id = $row['ID'];
$name = $row['NAME'];
$lob_field = $row['LOB_FIELD'];
echo $id.' '.$name.' '.$lob_field;
}
?>`
robert dot hicks at gmail dot com
09-Aug-2004 05:57
`OCI_NUM should be changed in the various scripts to the appropriate call to the OCI_*. For example the script to show the OCI_ASSOC call still has OCI_NUMS in it.`
add a note
oci_fetch_assoc oci_fetch_all

Last updated: Sat, 27 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 10:36:09 2007 PST