At 17:46 +0900 8/31/02, Jean-Christian Imbeault wrote: >I'm a little confused/worried about database transactions, >persistent connections and PHP. > >I am worried that if I use persistent connections it might be >possible for more than one PHP script to be inside the same >transaction at the same time.
Not at the *same* time, because although a persistent connect might be used by more than one script, this will be serially rather than simultaneously. That does mean it's possible for a transaction to be started by one script and then either committed or rolled back by the next if they share a connection. This can happen if the first script fails to issue a COMMIT or ROLLBACK, perhaps by exiting early due to an error. If the second script comes along and commits or rolls back, that affects the queries issued by the first script. > >For example: > >1- page1.php is a script that opens a persistent connection to a DB >and starts a transaction. > >2- User 1 goes to page1.php > >3- User 2 goes to page1.php > >My questions: > >1- is it possible that user 2 will be using the same connection as >user 1? So if user 1's transaction fails so will user 2's? > >2- If user 1's hits the stop button on his browser, what happens to >his transaction? I assume it is stopped. But what about the >connection? If user 2 No, the script won't have any idea the stop button has been pressed. It should have executed and completed its transaction regardless of what the user does. Perhaps you are thinking that user 1 visits the page and begins a transaction, and then visits it again to complete the transaction? That doesn't work. You have no guarantee that user 1 will get the same connection both times. (That is, don't try to spread a transaction out over multiple visits by a user.) >gets the same connection, will his transaction fail? > >Thanks, > >Jc -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php