(PHP 5, PECL OCI8 >= 1.1.0)
oci_error — Возвращает последнюю ошибку
$resource
] )Возвращает последнюю найденную ошибку.
Функция должны вызваться сразу же после появления ошибки. Ошибки очищаются при произведении правильного запроса.
resource
Для большинства ошибок параметром resource
является
соответствующий идентификатор соединения или выражения. Для ошибок во время
выполнения функций oci_connect(),
oci_new_connect() и oci_pconnect()
параметр resource
указывать не следует.
Если ошибок не найдено, то oci_error() возвращает
FALSE
. В другом случае, 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";
}
?>