commit and rollback

commit and rollback

am 10.09.2005 09:48:38 von Thanks

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,"");
pg_query($db,"commit");
}


pg_query($db,"begin");

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

$result1=pg_query($db,"");
if (pg_affected_rows($result)==0)
pg_query($db,"rollback");
else
pg_query($db,"commit");

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



--




---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faq

Re: commit and rollback

am 13.09.2005 13:53:55 von John DeSoi

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_status (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