oci_error
(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";
}
?>
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Расширения для работы с базами данных отдельных производителей
- Oracle OCI8
- oci_bind_array_by_name
- oci_bind_by_name
- oci_cancel
- oci_client_version
- oci_close
- oci_commit
- oci_connect
- oci_define_by_name
- oci_error
- oci_execute
- oci_fetch_all
- oci_fetch_array
- oci_fetch_assoc
- oci_fetch_object
- oci_fetch_row
- oci_fetch
- oci_field_is_null
- oci_field_name
- oci_field_precision
- oci_field_scale
- oci_field_size
- oci_field_type_raw
- oci_field_type
- oci_free_descriptor
- oci_free_statement
- oci_get_implicit_resultset
- oci_internal_debug
- oci_lob_copy
- oci_lob_is_equal
- oci_new_collection
- oci_new_connect
- oci_new_cursor
- oci_new_descriptor
- oci_num_fields
- oci_num_rows
- oci_parse
- oci_password_change
- oci_pconnect
- oci_result
- oci_rollback
- oci_server_version
- oci_set_action
- oci_set_client_identifier
- oci_set_client_info
- oci_set_edition
- oci_set_module_name
- oci_set_prefetch
- oci_statement_type
Коментарии
Please note that, unlike equivalent functions in other DB extensions, skipping the resource argument is not synonym for "just get last error".