it keeps a state of transaction flag as active even though the DB rolled back when the error occured thus flagging an error when you want to start another one or execute another query.
BEGIN
Queries
check for error (pg_last_error) after each query, if error, rollback and exit transaction "block"
COMMIT (no errors found)
The best would be to enclose the query in a function so that you can "exit" the block with a return statement or some similar construct. I can't remember if PHP supports block definition like in C
{
// group
// of
// calls
// block
}
David
On 3/1/07, mikie <mikie.pl@xxxxxxxxx
> wrote:
> > But getting back to my problem - perhaps there is something I
> > misunderstood: is it the client application responsibility to check if
> > the transaction failed or succeeded and issue COMMIT or ROLLBACK
> > accordingly (how do I close the transaction block in that case)?
> > Or is it the database server that is suppose to check if transaction
> > succeded and perform the query, or ROLLBACK if anything went wrong?
>
> PG will rollback all transactions that have an error in some part, as it
> can't commit the transaction as a whole.
OK, so my way of programming seems correct.
Then why do I have to send another COMMIT after failed transaction to
continue with next queries in the same php script ?
--
Mike
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings