How does MySQL integrate with PHP -- both from a technical and from a licensing perspective?
MySQL provides several ways to integrate between PHP and MySQL, most notably the ext/mysql and ext/mysqli drivers for PHP. These rely on the GPL licensed libmysql library, which by its nature is not compatible with the PHP license. With our not-so-optimally-named "FOSS Exception" , we have extended the rights of our community to use MySQL together with a number of non-GPL FOSS licenses, including the PHP license. This solution works well for many in the PHP community.
But we want to do more:
We plan to develop a pure PHP driver for MySQL, to be licensed under the PHP license itself and donated to the PHP Group for inclusion into PHP6.
We hope this will remove any and all licensing issues that the PHP community might otherwise have with MySQL.
Besides resolving licensing issues, we want the new pure PHP driver to technically integrate better with MySQL:
- we intend to add support for client-side query caching in the PHP driver for MySQL, probably already to MySQL 5.1 Community Server
- we intend to add support for a Prepared Statements cache to the PHP driver for MySQL, also implemented on the MySQL Server
We believe both of these will bring added technical value to users of PHP6. Tentatively, we should be able to deliver this in stages starting Q1 of 2007, in time for the preview release of PHP6.
We are still working out the details of this. Expect to see more specifics soon after the PHP conference in Frankfurt early November. Once we have worked out the details, I look forward to this initiative turning into a commitment from our side, and delivering results in the form of a more community-friendly, pure PHP driver for MySQL!