For some time I’ve been toying with the idea of building my own, custom data access layer. Sure there are plenty out there. Some of them are HUGE (just think PEAR::DB, or ADOdb), which isn’t a bad thing in and of itself if, and only if, they still perform well. I believe ADOdb performs pretty well, but I’ve not actually run the benchmarks to confirm this, so I won’t enter in to that argument. A quick Google search will bring up plenty of articles discussing the pros and cons of Database Abstraction Layers.