oci_error

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

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

Описание

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";
}
?>

add a note add a note

User Contributed Notes 1 note

up
-19
alvaro at demogracia dot com
10 years ago
Please note that, unlike equivalent functions in other DB extensions, skipping the resource argument is not synonym for "just get last error".
To Top