 |
|
Innovation award
 Nominee: 4x |
This class can safely manage the locking and unlocking of MySQL tables.
The table locks are created when an object of the class is created, and are automatically released when the object is destroyed.
The table unlocking occurs when the object is no longer referenced, or when it goes out of scope. The latter also occurs when a PHP script dies or when an exception occurs. This is where this class is most useful because it will make sure that all existing locks are automatically released even when using persistent connections.
The class takes advantage of PHP 5 class destructor support to make sure that the unlocking of any locked tables always happen.
 February 2005
Number 5
Prize: One copy of the Zend Studio |
One of the problems of using database transactions, table locks or other means that grant exclusive access to database resources for a running script, is that when that script ends all locks must be released.
This problem may become critical when the scripts use persistent connections to access the database and the developer forgot to release the locks or the script exited due to an unexpected error.
When the connections are not persistent, at the end of the script the database connection is closed and all locks are implicitly released.
However, when the connection is persistent, the database connection is not closed and the locks remain until the current Web server process is terminated. This situation may lock the whole database access for an indefinite period.
This class provides a solution that uses constructors and destructors functions to establish and release the necessary table locks. Even when a script exits in an unexpected way, the destructor function is always called and any outstanding locks are released.
Manuel Lemos |
| There are not enough user ratings to display for this class. |
| |
Applications that use this class |
|
|
No application links were specified for this class.

If you know an application of this package, send a message to the
author to add a link here.
| |
Files |
|
|