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.
>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
>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?
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php