Wednesday, 25 October 2006

Developing a pure PHP driver for MySQL

Talking to the PHP community members, I see a recurring theme:

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!

7 comments:

  1. [...] So eben gab Kaj Arnö in seinem Blog bekannt, daß MySQL im März 2007 eine neue Library unter der PHP License veröffentlichen wird. [...]

    ReplyDelete
  2. [...] Es ist nicht lange her, daß Kaj den Plan verkündet hat, einen neuen nativen MySQL Treiber für PHP zu entwickeln. Der neue Treiber wird unter die PHP Lizenz gestellt werden. PHP intern ersetzt der neue Treiber die libmysql. [...]

    ReplyDelete
  3. [...] Announcement: http://www.planetmysql.org/kaj/?p=69 Mini-FAQ: http://www.planetmysql.org/kaj/?p=71 [...]

    ReplyDelete
  4. [...] we are proud to announce the first alpha version of the MySQL native driver for PHP: mysqlnd 5.0.0-alpha. The software is available for download on http://dev.mysql.com/downloads/connector/php-mysqlnd. [...]

    ReplyDelete
  5. [...] Dieses Problem beruht auf der zugrunde liegenden C API, betrifft also nicht nur PHP. Es gibt aber Bemühungen diesen Misstand in PHP6 zu beseitigen. [...]

    ReplyDelete
  6. [...] Kaj’s announcement of the MySQL native driver for PHP (mysqlnd), we promised to to patch all three PHP MySQL [...]

    ReplyDelete
  7. [...] Kaj’s announcement of the MySQL native driver for PHP (mysqlnd), we promised to to patch all three PHP MySQL [...]

    ReplyDelete