oci_execute

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_execute — Виконує підготовлений вираз

Опис

oci_execute(resource $statement, int $mode = OCI_COMMIT_ON_SUCCESS): bool

Виконує підготовлений вираз statement, створене за допомогою функції oci_parse()

Відразу після виконання такого вираження INSERT, за промовчанням всі дані одразу будуть збережені в базі даних. Для подібних виразів SELECT, виконується лише логіка запиту. Результат же запиту можна отримати пізніше в PHP за допомогою подібних функцій oci_fetch_array()

Кожне підготовлене вираз може бути виконано кілька разів для економії витратах від повторної підготовки запиту. Це найчастіше застосовується для виразів INSERT, коли до них прив'язані дані за допомогою oci_bind_by_name()

Список параметрів

statement

Правильне підготовлене вираження OCI.

mode

Необов'язковий другий параметр з одним із наступних значень:

Режим виконання

КонстантаОпис
OCI_COMMIT_ON_SUCCESSАвтоматично зберігати всі незбережені зміни, здійснені за поточну сесію у разі успішного виконання виразу. Цей режим встановлено за замовчуванням.
OCI_DESCRIBE_ONLYРобить доступними метадані запити для подібних функцій oci_field_name(), але створює результат виконання висловлювання. Будь-яке подальше отримання даних, наприклад, за допомогою oci_fetch_array() не буде зроблено.
OCI_NO_AUTO_COMMITНе зберігати автоматично зміни.

Использование режима**OCI_NO_AUTO_COMMIT** відкриває чи продовжує транзакцію. Ця транзакція автоматично відкочується під час закриття з'єднання або завершення скрипту. Використовуйте oci_commit() для завершення транзакції та oci_rollback() для її скасування.

При вставці та оновленні даних рекомендується використання транзакцій для реляційної цілісності даних та для покращення продуктивності.

Якщо для якогось виразу використовується режим OCI_NO_AUTO_COMMIT, і згодом не використовуються oci_commit() або oci_rollback(), то OCI8 буде виконувати відкат при завершенні скрипта навіть якщо дані не були змінені. Для уникнення непотрібних відкатів більшість скриптів не використовують режим OCI_NO_AUTO_COMMIT для запитів або PL/SQL. Будьте уважні, щоб забезпечити належну узгодженість транзакцій під час використання oci_execute() із різними режимами в одному скрипті.

Значення, що повертаються

Повертає true у разі успішного виконання або **false**в случае возникновения ошибки.

Приклади

Приклад #1oci_execute()** під час виконання запитів**

Loading...

Приклад #2oci_execute()** без вказівки певного режиму**

Loading...

Приклад #3oci_execute()сOCI_NO_AUTO_COMMIT****

Loading...

Приклад #4oci_execute()** з різними режимами**

Loading...

Приклад #5oci_execute()сOCI_DESCRIBE_ONLY****

Loading...

Примітки

Зауваження :

Транзакції автоматично відкочуються під час закриття з'єднання або завершення виконання скрипту. Примусово викликайте oci_commit() для завершення транзакції.

Будь-який виклик oci_execute(), який примусово використовує OCI_COMMIT_ON_SUCCESS або за умовчанням завершуватиме будь-яку попередню незакриту транзакцію.

Будь-який вираз Oracle DDL подібний CREATEилиDROP буде автоматично завершувати будь-яку. незакриту транзакцію.

Зауваження :

Оскільки функція oci_execute() зазвичай відправляє вирази до бази даних, то oci_execute() може знайти деякі незначні синтаксичні помилки, коли локальна oci_parse()их не находит.

Дивіться також

  • oci_parse() - готує запит до виконання