At 12:52 +0900 9/1/02, Jean-Christian Imbeault wrote:
>Paul Dubois wrote:
>>>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
>>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.
>That's exactly what I meant and feared. In a sense User 2 who is
>re-using User 1's connection would be in User 1's "un-completed"
>transaction. And the result of User 2's transaction (commit or
>rollback) would affect the first transaction. Yuck ...
>>>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.
>Really? I don't exactly know how PHP script execute but I though
>that is that the user goes to a page that starts a script and then
>closes the browser that causes the script to end prematurely.
The script doesn't know anything about what the browser does.
>Am I wrong?
> Does the script go from start to finish even though the connection
>to the browser has been severed. I.e. The script will run complete
>even if there is output to the browser as the script is running?
Not necessarily. It won't base its actions on what the browser might happen
to be doing while it's running, but it might exit early because of a bug,
for example. But normally it will run to completion.
>If the script goes from start to finish regardless of what the user
>does that would be nice. That way I am sure a transaction will go
>from start to finish, and if I make sure to either commit or
>rollback the transaction at the end of the script then I don't have
You should write your script so that is *does* go from start to finish.
Forget about what the user might be doing.
>Maybe the safest thing to do is not use persistent connections at
>all? Or in your opinion is there a safe way to use persistent
>connections and transactions?
No. Don't use persistent connections. If some unforeseen problem does
occur with your script, the connection may be left open and you'll have
the problems you're concerned about. If you use a non-persistent connection
and a problem occurs, the connection will be closed (which presumably will
make your transaction roll back).
>PS Great book!
>PHP Database Mailing List (http://www.php.net/)
>To unsubscribe, visit: http://www.php.net/unsub.php
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php