The Skip and MaxRows parameters were not added until version 4.2.1.
Previous versions of php used this syntax:
int ocifetchstatement ( resource stmt, array &output)
The function also took a third parameter that was not documented. ( I assume that it was a flag)oci_fetch_all
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
oci_fetch_all
Референца за `function.oci-fetch-all.php` со подобрена типографија и навигација.
oci_fetch_all
Класата OCICollection
oci_fetch_all — Fetches multiple rows from a query into a two-dimensional array
= NULL
resource
$statement,array
&$output,int
$offset = 0,int
$limit = -1,int
$flags Презема повеќе редови од барање во дводимензионален список.): int
= OCI_FETCHSTATEMENT_BY_COLUMN | OCI_ASSOC
Презема повеќе редови од барање во дводимензионален список. Стандардно, сите редови се враќаат. oci_execute().
Параметри
statement-
Валиден идентификатор на OCI8 исказ креиран од oci_parse() и извршен од oci_execute(), или
REF CURSORидентификатор на исказ. output-
Оваа функција може да се повика само еднаш за секое барање извршено со
Променливата за да ги содржи вратените редови.
Константи за известување за грешки oci_fetch_array() LOB колоните се враќаат како низи, каде што Oracle поддржува конверзија.
offset-
за повеќе информации за тоа како се преземаат податоците и типовите.
limit-
Бројот на почетни редови што треба да се отфрлат при преземање на резултатот. Стандардната вредност е 0, така што се враќа од првиот ред натаму.
offsetБројот на редови што треба да се вратат. Стандардно е -1 што значи врати ги сите редови од flags-
Параметар
flags+ 1 натаму.oci_fetch_all() ја означува структурата на списокот и дали треба да се користат асоцијативни списоци. Константа = NULL OCI_FETCHSTATEMENT_BY_ROWРежими на структура на списокот OCI_FETCHSTATEMENT_BY_COLUMNНадворешниот список ќе содржи еден под-список по ред од барањето. Надворешниот список ќе содржи еден под-список по колона од барањето. Ова е стандардно.
oci_fetch_all() Списоците може да се индексираат или по наслов на колона или нумерички. Ќе биде вратен само еден режим на индекс. Константа = NULL OCI_NUMРежими на индекс на списокот OCI_ASSOCНумеричките индекси се користат за списокот на секоја колона. Асоцијативните индекси се користат за списокот на секоја колона. Ова е стандардно.
Користете го операторот за собирање "+" за да изберете комбинација од режими на структура на списокот и индекс. var_dump() on
outputto verify the appropriate case to use for each query.за да се потврди соодветниот случај што треба да се користи за секое барање.
Вратени вредности
Барањата што имаат повеќе од една колона со исто име треба да користат носии на колони. Инаку, само една од колоните ќе се појави во асоцијативен список. outputВраќа број на редови во
Примери
Пример #1 oci_fetch_all() example
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);
$nrows = oci_fetch_all($stid, $res);
echo "$nrows rows fetched<br>\n";
var_dump($res);
// var_dump output is:
// 2 rows fetched
// array(2) {
// ["POSTAL_CODE"]=>
// array(2) {
// [0]=>
// string(6) "00989x"
// [1]=>
// string(6) "10934x"
// }
// ["CITY"]=>
// array(2) {
// [0]=>
// string(4) "Roma"
// [1]=>
// string(6) "Venice"
// }
// }
// Pretty-print the results
echo "<table border='1'>\n";
foreach ($res as $col) {
echo "<tr>\n";
foreach ($col as $item) {
echo " <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
oci_free_statement($stid);
oci_close($conn);
?>
Пример #2 oci_fetch_all() "пример со" OCI_FETCHSTATEMENT_BY_ROW
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);
$nrows = oci_fetch_all($stid, $res, null, null, OCI_FETCHSTATEMENT_BY_ROW);
echo "$nrows rows fetched<br>\n";
var_dump($res);
// Output is:
// 2 rows fetched
// array(2) {
// [0]=>
// array(2) {
// ["POSTAL_CODE"]=>
// string(6) "00989x"
// ["CITY"]=>
// string(4) "Roma"
// }
// [1]=>
// array(2) {
// ["POSTAL_CODE"]=>
// string(6) "10934x"
// ["CITY"]=>
// string(6) "Venice"
// }
// }
oci_free_statement($stid);
oci_close($conn);
?>
Пример #3 oci_fetch_all() with OCI_NUM
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);
$nrows = oci_fetch_all($stid, $res, null, null, OCI_FETCHSTATEMENT_BY_ROW + OCI_NUM);
echo "$nrows rows fetched<br>\n";
var_dump($res);
// Output is:
// 2 rows fetched
// array(2) {
// [0]=>
// array(2) {
// [0]=>
// string(6) "00989x"
// [1]=>
// string(4) "Roma"
// }
// [1]=>
// array(2) {
// [0]=>
// string(6) "10934x"
// [1]=>
// string(6) "Venice"
// }
// }
oci_free_statement($stid);
oci_close($conn);
?>Белешки
Забелешка:
Пронајдете и отворете ја конфигурациската датотека на Apache. Стандардно, локацијата е како што следува:
offset, што може да биде 0 или повеќе. oci_fetch_array() е многу неефикасно. Сите редови што треба да се прескокнат се вклучени во резултатот што се враќа од базата на податоци до PHP. Потоа се отфрлаат. Поефикасно е да се користи SQL за да се ограничи поместувањето и опсегот на редови во барањето. Видете
Забелешка:
за пример. oci_fetch_array() се користи.
Забелешка:
For queries returning a large number of rows, performance can be significantly improved by increasing oci8.default_prefetch or using oci_set_prefetch().
Забелешка:
Барањата што враќаат голем број редови може да бидат поефикасни за меморија ако функција за преземање на еден ред какоc Нема да враќа редови од Oracle Database 12 oci_fetch_array() instead.
Види Исто така
- oci_fetch() - Добива следниот ред од барање во внатрешни бафери
- oci_fetch_array() - Враќа следниот ред од барање како асоцијативна или нумеричка низа
- oci_fetch_assoc() - Враќа следниот ред од барање како асоцијативна низа
- oci_fetch_object() - Враќа следниот ред од барање како објект
- oci_fetch_row() - Враќа следниот ред од барањето како нумерички низ
- oci_set_prefetch() - Поставува број на редови што треба да се претходно прочитаат од прашањата
Белешки од корисници 2 забелешки
Beware that only numerically indexed results will be returned if
OCI_NUM is used.