まず、PostgreSQLにはAutoCommitモードがなく、PHPAPIのpg_*関数はAutoCommitモードをエミュレートしようとしません。
pg_queryの
したがって、pg_query("UPDATE1 ..; UPDATE2...")
が保証されます。 1つのトランザクションで実行され、データにオールオアナッシングの影響を及ぼします。
シーケンス
pg_query("BEGIN");
pg_query("UPDATE1...");
pg_query("UPDATE2..");
pg_query("COMMIT");
pg_query("UPDATE1 ..; UPDATE2...")
と同等です データの整合性に関して(半完成状態は発生しません)。
「明示的なBEGIN/COMMIT ...がない限り」という注記については、これらがSQLステートメントのチェーン全体の最初と最後にない場合にのみ関係します。つまり、pg_query("BEGIN; update1; update2; COMMIT;");
pg_query("update1; update2;")
と同等です しかし(明らかに)pg_query("update1; COMMIT; update2;")
と同等ではありません