first transactions

first transactions

am 12.03.2008 09:47:33 von a b

Hello.

I think I need some help on making it clear on how to use transactions
in php in a "correct" way.

Lets consider this code/pseudocode

function dostuff()
{
$db = pg_pconnect...;
pg_query("begin work",$db);
$result = pg_query("select ***",$db);
$result = pg_query("insert ***",$db);

if previous query failed, then rollback and return false
else
{
$result = pg_query("update ***",$db);
$result = pg_query("select ***",$db);
$result = pg_query("insert ***",$db);
$result = pg_query("update ***",$db);
pg_query("commit,$db);
if everything was successfully committed
return true;
else
return false or some other kind of error status to tell what went wrong.
}

} //end function

So the question is: how do I write the pseudocode parts in php?
Any other general suggestions on how to make the function more "fool
proof" is appreciated. :-)

--
Sent via pgsql-php mailing list (pgsql-php@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-php

Re: first transactions

am 12.03.2008 17:29:03 von Jeff MacDonald

On Wednesday 12 March 2008 4:47:33 am A B wrote:
> Hello.
>
> I think I need some help on making it clear on how to use transactions
> in php in a "correct" way.
>
> Lets consider this code/pseudocode
>
[...snipped...]
> So the question is: how do I write the pseudocode parts in php?
> Any other general suggestions on how to make the function more "fool
> proof" is appreciated. :-)

I recommend use of PEAR::MDB2[1] or "PDO"[2].. typically what I do is run
the query, rollback if error, continue if not. if you want to be extra
thorough using MDB2, you can check to make sure the database supports
transactions, and after a "begin" you can make sure that the transaction has
been started. my understanding is that PDO has a *very* similar interface to
MDB2, except that PDO is written in C.

hope that helps some.. if you have more questions post again or email me
directly.

regards,
jeff

[1] http://pear.php.net/mdb2
[2] http://php.net/pdo
--
http://zoidtechnologies.com/
"websites that suck less"

--
Sent via pgsql-php mailing list (pgsql-php@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-php