Hi all,
Just so I have this straight, because I've been wondering the same,
if someone on my web site does a SELECT and then clicks on the browser
stop or gets click happy hitting one or many other links on the same
web page then the 1st SELECT and all other interrupted SELECT's should
get rolled back if each query starts with a BEGIN; because there is a
disconnect. Correct?
What about with persistant connections?
Greg
Rod Taylor wrote:
> On Tue, 2003-06-10 at 05:21, Michael Glaesemann wrote:
>
>>On Tuesday, Jun 10, 2003, at 17:05 Asia/Tokyo, Adrian Tineo wrote:
>>
>>>pg_connect($connection);
>>>pg_query($connection,"BEGIN;");
>>>$insert="INSERT INTO table VALUES (2,7,5);
>>>$result=pg_query($connection,$insert);
>>>if(!$result){
>>> pg_query($connection,"ROLLBACK");
>>> //Something went wrong with the insert so we rollback and
>>
> nothing
>
>>>changes in the db
>>>}else{
>>> pg_query($connection,"COMMIT");
>>> // If everything went all right, then we commit the changes
>>>}
>>>pg_close($connection);
>>
>>
>>Thanks, Adrian, for the illustration, especially the instance with
>>ROLLBACK. I've figured out this sequence now.
>>
>>What I'm wondering about is what happens when this sequence isn't
>>properly followed and the script quits before issuing a ROLLBACK or a
>>COMMIT. Obviously it's not a good situation and one to be avoided.
>
>
> The database, unless explicitly told to commit and the commit is
> completely successful will always rollback.
>
> So a disconnect results in a rollback.
>
--
Greg Spiegelberg
Sr. Product Development Engineer
Cranel, Incorporated.
Phone: 614.318.4314
Fax: 614.431.8388
Email: gspiegelberg@Cranel.com
Cranel. Technology. Integrity. Focus.