Re: transactions from PHP - double COMMIT required?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



Hi,

I think you should use ROLLBACK if the query cannot be executed.
one can commit only results of the queries that work.
Try ROLLBACK statement.

Mihail


Quoting mikie <mikie.pl@xxxxxxxxx>:

Hi,

I  have this problem - after sending a query from PHP script with
BEGIN-COMMIT transaction block that contains an error (e.g. I
intentionally insert wrong data into the field of "date" type) I get
an error (which is OK):ERROR:  date/time field value out of range.

Now, when I try to DELETE or perform some other query later in the
same PHP script  I receive this error:
ERROR: current transaction is aborted, commands ignored until end of
transaction block

I am 100% sure that I have closed the transaction block with
"COMMIT;". When I do the same in the console (psql) I get something
like:

BEGIN; INSERT INTO table1 (somecolumn) VALUES ('somedata'); INSERTsdf; COMMIT;

I get this reply
BEGIN
INSERT 180610 1
ERROR:  syntax error at or near "INSERTsdf" at character 1
ROLLBACK

Everything seems to be logical and works fine. So why this does not
work from PHP? I figured one thing to workaround my problem: I am
sending the query like this:
BEGIN;
(here are few insert queries, one is syntax error);
COMMIT;
Then I check the pg_result of this query in PHP, and if it is FALSE I
have to send another simple query : "COMMIT;" - yes I know this is
second commit already. But it works this way!
It seems like if PHP ignored my COMMIT command from the transaction query.
I also tried sending the transaction query like this:
BEGIN;
some queries;
COMMIT;COMMIT;
but this is not working. I need to send one transaction query, check
if the result is false, then send another COMMIT.

Any ideas where I got something missed?

Regards,
Mike

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
      choose an index scan if your joining column's datatypes do not
      match



--
Mihail Mihailov, lehtori
Käännöstiede (venäjä)
Kieli- ja käännöstieteiden laitos
33014 Tampereen yliopisto
puh. (03) 3551 6123
sähköposti: mihail.mihailov@xxxxxx


[Postgresql General]     [Postgresql Admin]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Yosemite Backpacking]     [Postgresql Jobs]

Add to Google Powered by Linux