oci_error

(PHP 5, PECL OCI8 >= 1.1.0)

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

Описание

array oci_error ([ resource $resource ] )

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

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

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

resource

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

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

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

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

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

Версия Описание
4.3.0 Добавлены позиции offset и sqltext.

Примеры

Пример #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";
}
?>

Примечания

Замечание:

В версиях PHP до 5.0.0 необходимо взамен использовать функцию ocierror(). Старое имя функции также может быть использовано в текущих версиях, хотя оно уже устарело и не рекомендуется.


Участник рейтинга Тэглайн 2010