Home > Archive > PHP with PostgreSQL > September 2005 > commit and rollback









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author commit and rollback
WeiShang

2005-09-10, 3:23 am

Hi,

I have a problem about commit and rollback using php. For the script below,
if "foo" is called and commit and if rollback statment also run. Will the
update statement under foo also rollback? or commit?

Thanks in advance!

----------------------------------------------------------------------------
-----------Script starts
function foo(var1,var2)
{
pg_query($db,"begin");
pg_query($db,"<update statement here>");
pg_query($db,"commit");
}


pg_query($db,"begin");

......
foo(v1,v2);

$result1=pg_query($d
b,"<update statment here>");
if (pg_affected_rows($r
esult)==0)
pg_query($db,"rollback");
else
pg_query($db,"commit");

----------------------------------------------------------------------------
-----------Script end



--



John DeSoi

2005-09-13, 7:24 am


On Sep 10, 2005, at 3:48 AM, WeiShang wrote:

> I have a problem about commit and rollback using php. For the
> script below,
> if "foo" is called and commit and if rollback statment also run.
> Will the
> update statement under foo also rollback? or commit?



It will commit, but it will also complete the transaction causing
everything after it to run outside the transaction. Probably not what
you would want to do.

If foo can be called both inside and outside of a transaction, you
should call pg_transaction_statu
s (assuming PHP 5) and only begin/
commit in foo if there is no existing transaction. If you are not
using PHP 5, then setup some flag to know if you are in a transaction.


John DeSoi, Ph.D.
http://pgedit.com/
Power Tools for PostgreSQL


---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

http://archives.postgresql.org

Sponsored Links





Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive | Programming forum archive

Copyright 2008 droptable.com