Oci error php

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

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

alvaro at demogracia dot com

8 years ago


Please note that, unlike equivalent functions in other DB extensions, skipping the resource argument is not synonym for "just get last error".

За последние 24 часа нас посетили 11374 программиста и 1113 роботов. Сейчас ищут 280 программистов …

oci_error

(PHP 5, PHP 7, 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. Если нет запроса, то строка пуста.

Примеры

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

Вернуться к: OCI8 Функции

oci_error

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

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

Описание

oci_error
([ resource $resource
] ) : array

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

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

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. Если нет запроса, то строка пуста.

Примеры

Пример #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, PHP 7, PHP 8, PECL OCI8 >= 1.1.0

oci_error — Returns the last error found

oci_error(
[resource|null$connection_or_statement = null] ): array|false

Returns the last error found.

The function should be called immediately after an error occurs.
Errors are cleared by a successful statement.

Parameters

connection_or_statement

For most errors, connection_or_statement is the
resource handle that was passed to the failing function call.
For connection errors with oci_connect,
oci_new_connect or
oci_pconnect null should be passed.

Return Values

If no error is found, oci_error returns
false. Otherwise, oci_error returns the
error information as an associative array.

oci_error Array Description

Array key Type Description
code int The Oracle error number.
message string The Oracle error text.
offset int The byte position of an error in the SQL statement. If there
was no statement, this is 0
sqltext string The SQL statement text. If there was no statement, this is
an empty string.

Changelog

Version Description
8.0.0, PECL OCI8 3.0.0 connection_or_statement is now nullable.

Example of oci_error

Show all examples
for oci_error

Содержание

  1. oci_error
  2. Описание
  3. Список параметров
  4. Возвращаемые значения
  5. Список изменений
  6. Примеры
  7. oci_execute — Выполняет подготовленное выражение
  8. Описание
  9. Список параметров
  10. Возвращаемые значения
  11. Примеры
  12. Примечания
  13. Смотрите также
  14. oci_error — Возвращает последнюю ошибку
  15. Описание
  16. Список параметров
  17. Возвращаемые значения
  18. Примеры
  19. oci_execute
  20. Description
  21. Parameters
  22. Return Values
  23. Examples
  24. Notes
  25. See Also
  26. User Contributed Notes 3 notes

oci_error

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

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

Описание

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

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

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

Для большинства ошибок параметром 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 после ошибки соединения

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

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

Источник

oci_execute — Выполняет подготовленное выражение

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

oci_execute — Выполняет подготовленное выражение

Описание

Выполняет подготовленное выражение statement , созданное с помощью функции oci_parse() .

Сразу после выполнения выражения подобного INSERT, по умолчанию все данные сразу будут сохранены в базе данных. Для выражений подобных SELECT, выполняется только логика запроса. Результат же запроса можно получить позже в PHP с помощью функций подобных oci_fetch_array() .

Каждое подготовленное выражение может быть выполнено несколько раз для экономии на издержках от повторной подготовки запроса. Это чаще всего применяется для выражений INSERT, когда к ним привязаны данные с помощью oci_bind_by_name() .

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

Правильное подготовленное выражение OCI.

Необязательный второй параметр с одним из следующих значений:

Режим выполнения

Константа Описание
OCI_COMMIT_ON_SUCCESS Автоматически сохранять все несохраненные изменения, произведенные за текущую сессию при успешном выполнении выражения. Этот режим установлен по умолчанию.
OCI_DESCRIBE_ONLY Делает доступными метаданные запроса для функций подобных oci_field_name() , но не создает результат выполнения выражения. Любое последующее получение данных, например с помощью oci_fetch_array() не будет произведено.
OCI_NO_AUTO_COMMIT Не сохранять автоматически изменения. Для PHP 5.3.2 (PECL OCI8 1.4) используйте OCI_DEFAULT , которая является эквивалентом для OCI_NO_AUTO_COMMIT .

Использование режима OCI_NO_AUTO_COMMIT открывает или продолжает транзакцию. Эта транзакция автоматически откатывается при закрытии соединения или завершении скрипта. Используйте oci_commit() для завершения транзакции и oci_rollback() для ее отмены.

При вставке и обновлении данных рекомендуется использование транзакций для реляционной целостности данных и для улучшения производительности.

Если для какого-нибудь выражения используется режим OCI_NO_AUTO_COMMIT , и впоследствии не используются oci_commit() или oci_rollback() , то OCI8 будет выполнять откат при завершении скрипта даже если данные не были изменены. Для избежания ненужных откатов большинство скриптов не используют режим OCI_NO_AUTO_COMMIT для запросов или PL/SQL. Будьте внимательны, чтобы обеспечить надлежащую согласованность транзакций при использовании oci_execute() с различными режимами в одном скрипте.

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

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 oci_execute() при выполнении запросов

= oci_connect ( ‘hr’ , ‘welcome’ , ‘localhost/XE’ );

$stid = oci_parse ( $conn , ‘SELECT * FROM employees’ );
oci_execute ( $stid );

echo »

n» ;

n» ;
>
echo «

n» ;
>
echo «

» . ( $item !== null ? htmlentities ( $item , ENT_QUOTES ) : «» ) . «

while ( $row = oci_fetch_array ( $stid , OCI_ASSOC + OCI_RETURN_NULLS )) <echo » n» ; foreach ( $row as $item ) <echo »

n» ;

Пример #2 oci_execute() без указания определенного режима

// Перед выполнением создайте таблицу:
// CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect ( ‘hr’ , ‘welcome’ , ‘localhost/XE’ );

$stid = oci_parse ( $conn , ‘INSERT INTO mytab (col1) VALUES (123)’ );

oci_execute ( $stid ); // Строка сохранена и становится видимой для других пользователей

Пример #3 oci_execute() с OCI_NO_AUTO_COMMIT

// Перед выполнением создайте таблицу:
// CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect ( ‘hr’ , ‘welcome’ , ‘localhost/XE’ );

$stid = oci_parse ( $conn , ‘INSERT INTO mytab (col1) VALUES (:bv)’ );
oci_bind_by_name ( $stid , ‘:bv’ , $i , 10 );
for ( $i = 1 ; $i 5 ; ++ $i ) <
oci_execute ( $stid , OCI_NO_AUTO_COMMIT ); // use OCI_DEFAULT for PHP >
oci_commit ( $conn ); // сохранение все новых значений: 1, 2, 3, 4, 5

Пример #4 oci_execute() с различными режимами

// Перед выполнением создайте таблицу:
// CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect ( ‘hr’ , ‘welcome’ , ‘localhost/XE’ );

$stid = oci_parse ( $conn , ‘INSERT INTO mytab (col1) VALUES (123)’ );
oci_execute ( $stid , OCI_NO_AUTO_COMMIT ); // data not committed

$stid = oci_parse ( $conn , ‘INSERT INTO mytab (col1) VALUES (456)’ );
oci_execute ( $stid ); // commits both 123 and 456 values

Пример #5 oci_execute() с OCI_DESCRIBE_ONLY

= oci_connect ( ‘hr’ , ‘welcome’ , ‘localhost/XE’ );

$stid = oci_parse ( $conn , ‘SELECT * FROM locations’ );
oci_execute ( $s , OCI_DESCRIBE_ONLY );
for ( $i = 1 ; $i oci_num_fields ( $stid ); ++ $i ) <
echo oci_field_name ( $stid , $i ) . «
n» ;
>

Примечания

Транзакции автоматически откатываются при закрытии соединения или завершении выполнения скрипта. Принудительно вызывайте oci_commit() для завершения транзакции.

Любой вызов oci_execute() , который принудительно использует OCI_COMMIT_ON_SUCCESS или по умолчанию будет завершать любую предыдущую незакрытую транзакцию.

Любое выражение Oracle DDL подобное CREATE или DROP будет автоматически завершать любу. незакрытую транзакцию.

Так как функция oci_execute() обычно отправляет выражения в базу данных, то oci_execute() может найти некоторые незначительные синтаксические ошибки, когда локальная oci_parse() их не находит.

Смотрите также

  • oci_parse() — Подготавливает запрос к выполнению

Источник

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

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

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

Описание

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

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

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

Для большинства ошибок параметром 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. Если нет запроса, то равна
sqltext string Текст запроса SQL. Если нет запроса, то строка пуста.

Примеры

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

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

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

Источник

oci_execute

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

oci_execute — Executes a statement

Description

Executes a statement previously returned from oci_parse() .

After execution, statements like INSERT will have data committed to the database by default. For statements like SELECT , execution performs the logic of the query. Query results can subsequently be fetched in PHP with functions like oci_fetch_array() .

Each parsed statement may be executed multiple times, saving the cost of re-parsing. This is commonly used for INSERT statements when data is bound with oci_bind_by_name() .

Parameters

A valid OCI statement identifier.

An optional second parameter can be one of the following constants:

Execution Modes

Constant Description
OCI_COMMIT_ON_SUCCESS Automatically commit all outstanding changes for this connection when the statement has succeeded. This is the default.
OCI_DESCRIBE_ONLY Make query meta data available to functions like oci_field_name() but do not create a result set. Any subsequent fetch call such as oci_fetch_array() will fail.
OCI_NO_AUTO_COMMIT Do not automatically commit changes. Prior to PHP 5.3.2 (PECL OCI8 1.4) use OCI_DEFAULT which is equivalent to OCI_NO_AUTO_COMMIT .

Using OCI_NO_AUTO_COMMIT mode starts or continues a transaction. Transactions are automatically rolled back when the connection is closed, or when the script ends. Explicitly call oci_commit() to commit a transaction, or oci_rollback() to abort it.

When inserting or updating data, using transactions is recommended for relational data consistency and for performance reasons.

If OCI_NO_AUTO_COMMIT mode is used for any statement including queries, and oci_commit() or oci_rollback() is not subsequently called, then OCI8 will perform a rollback at the end of the script even if no data was changed. To avoid an unnecessary rollback, many scripts do not use OCI_NO_AUTO_COMMIT mode for queries or PL/SQL. Be careful to ensure the appropriate transactional consistency for the application when using oci_execute() with different modes in the same script.

Return Values

Returns true on success or false on failure.

Examples

Example #1 oci_execute() for queries

= oci_connect ( ‘hr’ , ‘welcome’ , ‘localhost/XE’ );

$stid = oci_parse ( $conn , ‘SELECT * FROM employees’ );
oci_execute ( $stid );

echo »

n» ;

n» ;
>
echo «

n» ;
>
echo «

» . ( $item !== null ? htmlentities ( $item , ENT_QUOTES ) : » » ) . «

while ( $row = oci_fetch_array ( $stid , OCI_ASSOC + OCI_RETURN_NULLS )) <echo » n» ; foreach ( $row as $item ) <echo »

n» ;

Example #2 oci_execute() without specifying a mode example

// Before running, create the table:
// CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect ( ‘hr’ , ‘welcome’ , ‘localhost/XE’ );

$stid = oci_parse ( $conn , ‘INSERT INTO mytab (col1) VALUES (123)’ );

oci_execute ( $stid ); // The row is committed and immediately visible to other users

Example #3 oci_execute() with OCI_NO_AUTO_COMMIT example

// Before running, create the table:
// CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect ( ‘hr’ , ‘welcome’ , ‘localhost/XE’ );

$stid = oci_parse ( $conn , ‘INSERT INTO mytab (col1) VALUES (:bv)’ );
oci_bind_by_name ( $stid , ‘:bv’ , $i , 10 );
for ( $i = 1 ; $i 5 ; ++ $i ) <
oci_execute ( $stid , OCI_NO_AUTO_COMMIT ); // use OCI_DEFAULT for PHP >
oci_commit ( $conn ); // commits all new values: 1, 2, 3, 4, 5

Example #4 oci_execute() with different commit modes example

// Before running, create the table:
// CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect ( ‘hr’ , ‘welcome’ , ‘localhost/XE’ );

$stid = oci_parse ( $conn , ‘INSERT INTO mytab (col1) VALUES (123)’ );
oci_execute ( $stid , OCI_NO_AUTO_COMMIT ); // data not committed

$stid = oci_parse ( $conn , ‘INSERT INTO mytab (col1) VALUES (456)’ );
oci_execute ( $stid ); // commits both 123 and 456 values

Example #5 oci_execute() with OCI_DESCRIBE_ONLY example

= oci_connect ( ‘hr’ , ‘welcome’ , ‘localhost/XE’ );

$stid = oci_parse ( $conn , ‘SELECT * FROM locations’ );
oci_execute ( $s , OCI_DESCRIBE_ONLY );
for ( $i = 1 ; $i oci_num_fields ( $stid ); ++ $i ) <
echo oci_field_name ( $stid , $i ) . «
n» ;
>

Notes

Transactions are automatically rolled back when connections are closed, or when the script ends, whichever is soonest. Explicitly call oci_commit() to commit a transaction.

Any call to oci_execute() that uses OCI_COMMIT_ON_SUCCESS mode explicitly or by default will commit any previous uncommitted transaction.

Any Oracle DDL statement such as CREATE or DROP will automatically commit any uncommitted transaction.

Because the oci_execute() function generally sends the statement to the database, oci_execute() can identify some statement syntax errors that the lightweight, local oci_parse() function does not.

See Also

  • oci_parse() — Prepares an Oracle statement for execution

User Contributed Notes 3 notes

Notice (PHP 5.2.12-pl0-gentoo):
You can parse empty query, you can execute empty query (returns true), but you cannot fetch data from empty query. So, if you provide query as variable, make sure it isn’t empty.

= oci_parse ( $c , «» );
if( $q != false ) <
// parsing empty query != false
if( oci_execute ( $q ) <
// executing empty query != false
if( oci_fetch_all ( $q , $data , 0 , — 1 , OCI_FETCHSTATEMENT_BY_ROW ) == false ) <
// but fetching executed empty query results in error (ORA-24338: statement handle not executed)
$e = oci_error ( $q );
echo $e [ ‘message’ ];
>
>
else <
$e = oci_error ( $q );
echo $e [ ‘message’ ];
>
>
else <
$e = oci_error ( $link );
echo $e [ ‘message’ ];
>
?>

You can pass a «false» value to oci_execute() and this returns a null value, instead of the documented false value.
= oci_connect ( ‘username’ , ‘password, ‘ //hostname:1521/DB’);

$result = oci_execute ( false );
var_dump ( $result );
?>

Results in «null», so performing an Identical test:
if ( $results === false ) <
//throw exception
>
?>

won’t trap a problem, where as the Equal test (==) would:
if ( $results == false ) <
//throw exception
>
?>

So testing the result of a statement like oci_parse() is important!

Источник

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Ocenaudio как изменить голос
  • Oce код ошибки 10514 246
  • Oce plotwave 360 ошибка 22552
  • Oce 940 error ee
  • Occurred icv error in rx keenetic

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии