Обсуждение: first transactions

Поиск
Список
Период
Сортировка

first transactions

От
"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. :-)

Re: first transactions

От
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"