« More on the Phone | Main | TIA Gone? »
July 11, 2003
PHPs New ODBC
In the past I've threatened to re-write large portions of the ext/odbc system for PHP. A little while back, I decided to finally shut up and begin the re-write. A few things have changed since that initial email, and, hopefully, over the next few days I'll be able to highlight some of the changes and discuss how they will effect the everyday PHP/ODBC user.
Today's topic of interest: Database support
At this time I intend to fully drop support for native driver interfaces. Why? A couple of reasons come to mind.
First, the biggest of which, is that I have no way to test on database X. I don't see any real reason why any of the changes being made won't be supported by an ODBC v 3 compliant interface, but I will not make that assertation blindly.
Second, the purported speed increase in many of the more mainstream commercial databases is not entirely correct. In fact many would call this a flat out database myth. Ken North performed a rather detailed examination of speed differences between Oracle 8/9 native interfaces and ODBC interfacing (via Data Direct). Oddly enough this information is in direct conflict with the testing results Georg Richter and I have collected through MyODBC on a MySQL database which showed ODBC to be significantly slower (code maturity?).
In any case, the final result (as I read it) from this research is that while there are sections each is marginally better at, the overall effect is that neither is significantly better performance wise. As such this leaves me, the developer, with the convience factor, or better known as the least amount of work I need to do to make things happy. All signs point towards a Driver Manager only world, much along the lines of the Perl DB interface.
Third, it seems to me rather odd to support a native interface for a technology that is designed to work as a non-native interface. While not a technical reason at all, in an odd way it makes sense to me.
As I see right now there are three major ODBC Driver Managers to support; Microsoft, OpenLink Software's iODBC, and unixODBC. If you have another you think should be supported, please let me know via comments, email, or a TrackBack.
Posted by Dan at July 11, 2003 09:47 AM