(PHP 5 >= 5.1.0, PHP 7)
pg_transaction_status — Возвращает текущее состояние транзакции на сервере
$connection
   )Возвращает текущее состояние транзакции на сервере.
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 'Соединение в режиме транзакции';
  }    
?>