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.
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_transaction_status — Retourne le statut de la transaction en cours du serveur
$connection
): intRetourne le statut de la transaction en cours du serveur.
pg_transaction_status() donnera de mauvais résultats
lorsque vous l'utiliserez avec un serveur PostgreSQL 7.3 qui a le
paramètre autocommit
désactivé. La fonctionnalité de
autocommit est obsolète et n'existe plus dans les versions de serveur
plus récentes.
connection
Ressource de connexion de base de données PostgreSQL.
Le statut peut être PGSQL_TRANSACTION_IDLE
(actuellement inactif),
PGSQL_TRANSACTION_ACTIVE
(une commande est en cours),
PGSQL_TRANSACTION_INTRANS
(inactif, dans un bloc de transaction valide),
ou PGSQL_TRANSACTION_INERROR
(inactif, dans un bloc de transaction en échec).
PGSQL_TRANSACTION_UNKNOWN
est retourné si la connexion est mauvaise.
PGSQL_TRANSACTION_ACTIVE
est retourné seulement si la
requête a été envoyée au serveur et que celle-ci n'a pas été encore
complétée.
Exemple #1 Exemple avec pg_transaction_status()
<?php
$dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");
$stat = pg_transaction_status($dbconn);
if ($stat === PGSQL_TRANSACTION_UNKNOWN) {
echo 'Connexion mauvaise';
} else if ($stat === PGSQL_TRANSACTION_IDLE) {
echo 'Connexion actuellement inactive';
} else {
echo 'Connexion est en cours de transaction';
}
?>
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.