pg_transaction_status

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

pg_transaction_statusReturns the current in-transaction status of the server

Descrizione

pg_transaction_status(PgSql\Connection $connection): int

Returns the current in-transaction status of the server.

Attenzione

pg_transaction_status() will give incorrect results when using a PostgreSQL 7.3 server that has the parameter autocommit set to off. The server-side autocommit feature has been deprecated and does not exist in later server versions.

Elenco dei parametri

connection

An PgSql\Connection instance.

Valori restituiti

The status can be PGSQL_TRANSACTION_IDLE (currently idle), PGSQL_TRANSACTION_ACTIVE (a command is in progress), PGSQL_TRANSACTION_INTRANS (idle, in a valid transaction block), or PGSQL_TRANSACTION_INERROR (idle, in a failed transaction block). PGSQL_TRANSACTION_UNKNOWN is reported if the connection is bad. PGSQL_TRANSACTION_ACTIVE is reported only when a query has been sent to the server and not yet completed.

Log delle modifiche

Versione Descrizione
8.1.0 The connection parameter expects an PgSql\Connection instance now; previously, a resource was expected.

Esempi

Example #1 pg_transaction_status() example

<?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';
}
?>

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