Выполняет подготовленное выражение statement, созданное с помощью
функции oci_parse().
Сразу после выполнения выражения подобного INSERT,
по умолчанию все данные сразу будут сохранены в базе данных. Для
выражений подобных SELECT, выполняется только
логика запроса. Результат же запроса можно получить позже в PHP
с помощью функций подобных oci_fetch_array().
Каждое подготовленное выражение может быть выполнено несколько раз
для экономии на издержках от повторной подготовки запроса.
Это чаще всего применяется для выражений INSERT,
когда к ним привязанны данные с помощью oci_bind_by_name().
Список параметров
statement
Правильное подготовленное выражение OCI.
mode
Необязательный второй параметр с одним из следующих значений:
Режим выполнения
Константа
Описание
OCI_COMMIT_ON_SUCCESS
Автоматически сохранять все несохраненные изменения,
произведенные за текущую сессию при успешном выполнении выражения.
Этот режим установлен по умолчанию.
OCI_DEFAULT
Устаревшая начиная с PHP 5.3.2 (PECL OCI8 1.4), но все еще
доступная для обратной совместимости. Используйте ее эквивалент
OCI_NO_AUTO_COMMIT в новых приложениях.
OCI_DESCRIBE_ONLY
Делает доступными метаданные запроса для функций подобных
oci_field_name(), но не создает результат выполнения выражения.
Любое последующее получение данных, например с помощью
oci_fetch_array() не будет произведено.
OCI_NO_AUTO_COMMIT
Не сохранять автоматически изменения. Для PHP
5.3.2 (PECL OCI8 1.4)
используйте OCI_DEFAULT, которая является эквивалентом
для 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 в случае возникновения ошибки.
Транзакции автоматически откатываются при закрытии соединения или
завершении выполнения скрипта. Принудительно вызывайте
oci_commit() для завершения транзакции.
Любой вызов oci_execute(), который принудительно
использует OCI_COMMIT_ON_SUCCESS или по умолчанию
будет завершать любую предыдущую незакрытую транзакцию.
Любое выражение Oracle DDL подобное CREATE
или DROP будет автоматически завершать
любу. незакрытую транзакцию.
Замечание:
Так как функция oci_execute() обычно
отправляет выражения в базу данных, то oci_execute()
может найти некоторые незначительные синтаксические ошибки, когда
локальная oci_parse() их не находит.
Замечание:
В PHP до версии 5.0.0 используйте ociexecute().
Старое имя функции также может быть использовано в текущих версиях, хотя оно уже устарело
и не рекомендуется.