PHP 8.6.0 Beta 1 is available for testing

oci_error

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

oci_errorВозвращает последнюю ошибку

Описание

function oci_error(? resource $connection_or_statement = null ): array |false

Возвращает последнюю найденную ошибку.

Функция должна вызваться сразу же после появления ошибки. Ошибки очищаются при произведении правильного запроса.

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

connection_or_statement

Для большинства ошибок параметром connection_or_statement является соответствующий идентификатор соединения или выражения. Для ошибок во время выполнения функций oci_connect() , oci_new_connect() или oci_pconnect() следует передавать null .

Возвращаемые значения

Если ошибок не найдено, то oci_error() возвращает false . В противном случае, oci_error() возвращает информацию об ошибке в виде ассоциативного массива.

Описание массива вывода oci_error()
Ключ массива Тип Описание
code int Номер ошибки Oracle.
message string Текст ошибки Oracle.
offset int Позиция ошибки в запросе SQL. Если нет запроса, то равна 0
sqltext string Текст запроса SQL. Если нет запроса, то строка пуста.

Список изменений

Версия Описание
8.0.0, PECL OCI8 3.0.0 connection_or_statement теперь допускает значение null.

Примеры

Пример #1 Вывод сообщения об ошибке Oracle после ошибки соединения

<?php
$conn = oci_connect("hr", "welcome", "localhost/XE");
if (!$conn) {
 $e = oci_error(); // Для обработки ошибок oci_connect
 trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Пример #2 Вывод сообщения об ошибке Oracle после ошибки разбора

<?php
$stid = oci_parse($conn, "select ' from dual"); // пропущенные кавычки
if (!$stid) {
 $e = oci_error($conn); // Для обработки ошибок oci_parse
 trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Пример #3 Вывод сообщения об ошибке Oracle, ошибочного запроса и позиции ошибки запуска запроса

<?php
$stid = oci_parse($conn, "select does_not_exist from dual");
$r = oci_execute($stid);
if (!$r) {
 $e = oci_error($stid); // Для обработки ошибок oci_execute
 print htmlentities($e['message']);
 print "\n<pre>\n";
 print htmlentities($e['sqltext']);
 printf("\n%".($e['offset']+1)."s", "^");
 print "\n</pre>\n";
}
?>

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы

AltStyle によって変換されたページ (->オリジナル) /