I'm having some ugly fun here. It doesn't seem as if
pg_transaction_status() is reliable in the least.
For example, I'm doing the equivalent of the following:
pg_send_query_params($conn, 'BEGIN', array());
pg_get_result($conn);
... some other queries, each using pg_send_query_params() and
pg_get_result() ...
pg_send_query_params($conn, 'COMMIT', array());
pg_get_result($conn);
echo pg_transaction_status($conn);
Now, amazingly enough, pg_transaction_status() returns
PGSQL_TRANSACTION_ACTIVE after the commit. This makes no sense to
me at all ... it should return PGSQL_TRANSACTION_IDLE, since the
connection is no longer in a transaction.
Is anyone else seeing this? I have assertions failing all over the
place because my code thinks that transactions have been left
uncommitted.
Postgresql 8.3.5, FreeBSD 6.3, PHP 5.2.9 with Suhosin patch
--
Bill Moran
http://www.potentialtech.com
http://people.collaborativefusion.com/~wmoran/