Apparently mysql didn't handle persistent connections properly. Mysqli does away with persistent connections because of this.
There is a new solution, called mysqlnd, which restores persistent connections and hopefully implements them properly
http://dev.mysql.com/downloads/connector/php-mysqlnd/
Quote:
Advantages of mysqlnd
The new development is licensed under the terms of the PHP license to solve any license issues.
During the early stage of the development we will offer it from MySQL. As soon as mysqlnd is feature complete and production ready we will move it to the PHP project CVS repository on http://cvs.php.net.
On the C-level mysqlnd uses many of the proven and stable PHP internal functions. All the code of the new driver is contained in the ext/mysqli source directory. There is no need to link any external libraries. Thus you neither need to install the MySQL client library to compile PHP with ext/mysqli support nor do you need to take care of versions. Compiling has been made easier.
The performance of some functions has been improved. We have measured considerable performance improvements, for example when fetching buffered result sets.
|
Quote:
Features and Limitations
The 5.0.1-beta release covers the functionality of the libmysql beside some functions that are marked as experimental in the ext/mysqli documentation. Support for Prepared Statements and Unicode has been added.
From the API additions discussed with Community members in November 2006 during the Frankfurt PHP conference, we managed implement:
* improved persistent connections
* mysqli_fetch_all()
* performance statistics call: mysqli_get_cache_stats(), mysqli_get_client_stats(), mysqli_get_connection_stats()
More additions will follow.
|
Quote:
FAQ
Q: Is mysqlnd a new PHP extension?
No, the new MySQL driver for PHP is not a new PHP extension. The driver is a replacement for libmysql on the internal C level of the PHP extension ext/mysqli.
You can continue to compile the ext/mysqli extension with libmysql like ever since. We will not remove this functionality. Alternatively you can compile ext/mysqli with mysqlnd. We suggest that you try it, because mysqlnd is easier to compile and we found it to be faster than libmysql.
Q: Can other PHP extensions use it?
Yes, they can, if they want to. The source code of the new driver is the ext/mysqli/mysqlnd directory of the download files. Extension writes will find that mysqlnd mimics the API of libmysql respectively the MySQL C API.
Q: Will PDO/MySQL support it?
It is up to the PHP community to decide if and when PDO/MySQL will support it. Our development focus is currently on finishing the implementation and giving an example how to use it with ext/mysqli.
Q: Does it work with any MySQL Server before 4.1?
The MySQL native driver for PHP requires PHP 5 or PHP 6.
You can use it to connect to the MySQL Server 4.1 or newer. Please note the MySQL Lifecycle Policy
Q: How can I contribute and/or report bugs?
For development discussion and reporting bugs please subscribe to the mailing list php@lists.mysql.com. See http://lists.mysql.com/ for details.
Q: What is next on your mysqlnd TODO?
The primary goal is to stabilize the source code and to finish the ext/mysql port. On the long run we consider to further improve our support for Prepared Statements and to add a client-side result set cache.
|