サーバー上で実行中のトランザクションの状態を返す

# pg_transaction_status

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

pg_transaction_status — サーバー上で実行中のトランザクションの状態を返す

### 説明

function pg_transaction_status(PgSql\Connection `$connection`): int

サーバー上で実行中のトランザクションの状態を返します。

警告

PostgreSQL 7.3 サーバーで `autocommit` を off に 設定している場合、pg_transaction_status() は 不正確な値を返します。サーバー側での自動コミット機能は非推奨と されており、最近のバージョンのサーバーでは存在しません。

### パラメータ

`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("Could not connect");
      $stat = pg_transaction_status($dbconn);
      if ($stat === PGSQL_TRANSACTION_UNKNOWN) {
          echo 'Connection is bad';
      } else if ($stat === PGSQL_TRANSACTION_IDLE) {
          echo 'Connection is currently idle';
      } else {
          echo 'Connection is in a transaction state';
      }
    ?>

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open