(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_transaction_status — Возвращает текущее состояние транзакции на сервере
Возвращает текущее состояние транзакции на сервере.
pg_transaction_status() выдаёт некорректный результат при работе с сервером PostgreSQL 7.3, на котором выключена опция autocommit
. Автоматическое завершение транзакций на стороне сервера устарело и не используется в более поздних версиях.
connection
Экземпляр класса PgSql\Connection.
Список возможных состояний: 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 'Соединение в режиме транзакции';
}
?>