oci_fetch_all
(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_fetch_all — Вибирає всі рядки з результату запиту на двовимірний масив.
Опис
oci_fetch_all( resource $statement, array &$output, int $offset = 0, int $limit = -1, int $flags = OCI_FETCHSTATEMENT_BY_COLUMN | OCI_ASSOC): int
Вибирає всі рядки з результату запиту двомірний масив. За промовчанням повертає всі рядки.
Ця функція може бути викликана лише один раз для кожного запиту запущеного за допомогою oci_execute()
Список параметрів
statement
Коректний ідентифікатор виразу OCI8, отриманий з oci_parse() та виконаний функцією oci_execute(), або ідентифікатор виразу REF CURSOR
output
Змінна, що містить повернені рядки.
LOB стовпці повертаються як рядки, для яких підтримується Oracle перетворення.
Смотритеoci_fetch_array() для більш детальної інформації про те, як проводиться вибірка даних та типів.
offset
Число рядків, які необхідно виключити з вибірки. За замовчуванням дорівнює 0, вибірка повертається з наступного ряду.
limit
Число рядків, що повертаються. За замовчуванням дорівнює -1, що означає повернення всіх рядків, починаючи із зазначених у offset
+ 1 попередній рядок.
flags
Параметрflags
містить структуру масиву відбиває необхідність використання асоціативних масивів.
Структура массиваoci_fetch_all()****
Константа | Опис |
---|---|
OCI_FETCHSTATEMENT_BY_ROW | Масив буде містити по одному підмасиву на кожен рядок запиту. |
OCI_FETCHSTATEMENT_BY_COLUMN | Масив міститиме по одному підмасиву на кожен стовпець. Використовується за промовчанням. |
Масиви можуть бути проіндексовані або заголовками стовпців або пронумеровані. Повернеться лише один режим індексації.
Индексация массиваoci_fetch_all()****
Константа | Опис |
---|---|
OCI_NUM | Для масиву кожного стовпця використовуються числові індекси. |
OCI_ASSOC | Для масиву кожного стовпця використовують асоціативні індекси. За замовчуванням. |
Використовуйте оператор додавання "+" для вибору певної комбінації структури та індексації масиву.
Регістронезалежні (за замовчуванням у Oracle) імена полів у результуючому масиві матимуть асоціативні індекси у верхньому регістрі. Регістрозалежні імена полів матимуть індекси з тими самими регістрами символів, як і саме поле. Використовуйте var_dump()наoutput
, щоб перевірити відповідність регістрів символів для кожного запиту.
У запитах, у яких є кілька стовпців з однаковими іменами, необхідно використовувати псевдоніми. Інакше лише один із стовпців з'явиться в асоціативному масиві.
Значення, що повертаються
Повертає кількість стовпців у output
, який може набувати значення 0 або більше.
Приклади
Приклад #1 Приклад використання oci_fetch_all()****
Loading...
Приклад #2 Приклад використання oci_fetch_all()сOCI_FETCHSTATEMENT_BY_ROW
****
Loading...
Приклад #3 Приклад використання oci_fetch_all()сOCI_NUM
****
Loading...
Примітки
Зауваження :
Использование
offset
неефективно. Всі ряди, що пропускаються, включаються в результат запиту повертається базою даних до PHP. Після цього вони виключаються. Більш ефективно використовувати SQL для відступу та обмеження рядів у запиті. Дивіться oci_fetch_array()для Прикладов.
Зауваження :
Запити, що повертають велику кількість рядів, можуть бути більш ефективними, якщо використовується однорядна функція вибірки, така як oci_fetch_array()
Зауваження :
Для запитів, що повертають велику кількість рядів, продуктивність може бути значно збільшена за допомогою збільшення значення опції oci8.default_prefetchили использованияoci_set_prefetch()
Зауваження :
Не повертає ряди для неявних результуючих наборів у Oracle Database 12c. Використовуйте замість цієї функції функцію oci_fetch_array()
Дивіться також
- oci_fetch() - Вибирає наступний рядок із результату в буфер
- oci_fetch_array() - Повертає наступний рядок із результату запиту у вигляді асоціативного чи нумерованого масиву
- oci_fetch_assoc() - Повертає наступний рядок із результату запиту у вигляді асоціативного масиву
- oci_fetch_object() - Повертає наступний рядок із результату запиту у вигляді об'єкта
- oci_fetch_row() - Повертає наступний рядок із результату запиту у вигляді нумерованого масиву
- oci_set_prefetch() - Встановлює кількість рядків, які будуть автоматично вибрані у буфер