pg_transaction_status

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_transaction_status Возвращает текущее состояние транзакции на сервере

Описание

pg_transaction_status(resource $connection): int

Возвращает текущее состояние транзакции на сервере.

Предостережение

pg_transaction_status() выдаёт некорректный результат при работе с сервером PostgreSQL 7.3, на котором выключена опция autocommit. Автоматическое завершение транзакций на стороне сервера устарело и не используется в более поздних версиях.

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

connection

Ресурс соединения с базой данных PostgreSQL.

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

Список возможных состояний: PGSQL_TRANSACTION_IDLE (сервер бездействует), PGSQL_TRANSACTION_ACTIVE (выполняется запрос), PGSQL_TRANSACTION_INTRANS (сервер бездействует, работа в режиме транзакции), или PGSQL_TRANSACTION_INERROR (сервер бездействует, транзакция потерпела неудачу). PGSQL_TRANSACTION_UNKNOWN - ошибка подключения. PGSQL_TRANSACTION_ACTIVE возвращается только когда запрос уже отправлен на сервер, но ещё не обработан.

Примеры

Пример #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 
'Соединение в режиме транзакции';
  }
?>

add a note add a note

User Contributed Notes 1 note

up
0
btherl at yahoo dot com dot au
17 years ago
This function is implemented in C, so there's no way to mimic it in SQL for older versions of PHP.  But you can mimic some of the functionality by using a wrapper which keeps track of when you begin and commit/rollback transactions.
To Top