oci_fetch_array

(PHP 5, PECL oci8 >= 1.1.0)

oci_fetch_arrayReturns the next row from the result data as an associative or numeric array, or both

Описание

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

Returns an array, which corresponds to the next result row.

За повече информация относно свързването на типове данни, което се извършва от oci8 драйвера, вижте типовете данни поддържани от драйвера

It should be mentioned here, that oci_fetch_array() is insignificantly slower, than oci_fetch_row(), but much more handy.

Параметри

statement

A valid OCI statement identifier.

mode

An optional second parameter can be any combination of the following constants:

  • OCI_BOTH - return an array with both associative and numeric indices (the same as OCI_ASSOC + OCI_NUM). This is the default behavior.
  • OCI_ASSOC - return an associative array (as oci_fetch_assoc() works).
  • OCI_NUM - return a numeric array, (as oci_fetch_row() works).
  • OCI_RETURN_NULLS - create empty elements for the NULL fields.
  • OCI_RETURN_LOBS - return the value of a LOB of the descriptor.

Default mode is OCI_BOTH.

Връщани стойности

Returns an array with both associative and numeric indices, or FALSE if there are no more rows in the statement .

Забележка: Тази функция установява NULL полетата със стойността null; в PHP.

Забележка: Oracle returns all field names in uppercase and associative indices in the result array will be uppercased too.

Примери

Example #1 oci_fetch_array() with OCI_BOTH example

<?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>";
}
?>

Example #2 oci_fetch_array() with OCI_NUM example

<?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
}
?>

Example #3 oci_fetch_array() with OCI_ASSOC example

<?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"
}
?>

Example #4 oci_fetch_array() with OCI_RETURN_LOBS example

<?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
}
?>

Вж. също

add a note add a note

User Contributed Notes 2 notes

up
0
Maxwell_Smart at ThePentagon dot com
11 years ago
When using OCI_RETURN_LOBS to get a BFILE (stored with a DIRECTORY) the user needs READ on the DIRECTORY.  (GRANT READ on DIRECTORY <directory name> TO <user>;) Otherwise, you'll get a cryptic error. Warning: OCILobFileOpen: ORA-22285: non-existent directory or file for FILEOPEN operation in ... on line ...
<BR>
The user that CREATEs the DIRECTORY is automatically GRANTed READ WITH THE GRANT OPTION.
up
0
junk at netburp dot com
13 years ago
Here's a clue about rowid.

Don't forget about the oracle functions:

"rowidtochar" and "chartorowid"

"select rowidtochar(rowid) as FOO from table ...."

When you want to pass the rowid in a form or link, that's
the only way to go.
To Top