array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.pg-transaction-status.php', 1 => 'pg_transaction_status', ), 'up' => array ( 0 => 'ref.pgsql.php', 1 => 'Функции PostgreSQL', ), 'prev' => array ( 0 => 'function.pg-trace.php', 1 => 'pg_trace', ), 'next' => array ( 0 => 'function.pg-tty.php', 1 => 'pg_tty', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/pgsql/functions/pg-transaction-status.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_transaction_status — Возвращает текущее состояние транзакции на сервере
Возвращает текущее состояние транзакции на сервере.
pg_transaction_status() выдаёт некорректный результат
при работе с сервером PostgreSQL 7.3, на котором выключена опция
autocommit
. Автоматическое завершение транзакций
на стороне сервера устарело и не используется в более поздних версиях.
Список возможных состояний:
PGSQL_TRANSACTION_IDLE
(сервер бездействует),
PGSQL_TRANSACTION_ACTIVE
(выполняется запрос),
PGSQL_TRANSACTION_INTRANS
(сервер бездействует,
работа в режиме транзакции),
или PGSQL_TRANSACTION_INERROR
(сервер
бездействует, транзакция потерпела неудачу).
PGSQL_TRANSACTION_UNKNOWN
- ошибка подключения.
PGSQL_TRANSACTION_ACTIVE
возвращается только
когда запрос уже отправлен на сервер, но ещё не обработан.
Версия | Описание |
---|---|
8.1.0 |
Параметр connection теперь ожидает экземпляр
класса PgSql\Connection; раньше параметр ждал ресурс (resource).
|
Пример #1 Пример использования pg_transaction_status()
<?php
$dbconn = pg_connect("dbname=publisher") or die("Подключиться не удалось");
$stat = pg_transaction_status($dbconn);
if ($stat === PGSQL_TRANSACTION_UNKNOWN) {
echo 'Соединение не удалось';
} else if ($stat === PGSQL_TRANSACTION_IDLE) {
echo 'Соединение свободно и простаивает';
} else {
echo 'Соединение в режиме транзакции';
}
?>