Oggi girando per la rete mi sono imbattuto in questa libreria per php5 (ne esiste anche una funzionante per il php4) che ti permette di astrarre le API specifiche/native dei vari Database. Creole deriva dall’esperienza di altre libreria di astrazione quali PEAR:: DB, PEAR::MDB, and ADOdb. Nello specifico ecco le sue features :

  • Built for PHP5: new object model, Exceptions
  • Interface-based system allows easy creation & registering of custom drivers or classes that wrap existing drivers to provide additional functionality (e.g. to log queries for debugging, do query performance analysis using EXPLAIN, etc.).
  • Fully object-oriented API
  • ResultSet scrolling: next, previous, first, last, relative, and absolute row fetching.
  • ResultSetIterator (SPL) provides an additional means for iterating over recordsets.
  • Comprehensive database metadata (database, table, full column info, pimary keys, foreign keys, indexes) using simple OO API.
  • Full unified type system (based on JDBC Types)
  • Simple, un-exceptional OO API for handling BLOB and CLOB data.
  • Type-specific methods handle any necessary conversions and escaping for inserting and retrieving values.
  • Native (no emulation) handling of autoincrement / sequence id generation.
  • Extensive unit test framework tests each driver using real databases.

Esso supporta vari database quali MySQL, MS SQL Server, PostgreSQL, SQLite e sta muovendo i primi passi verso Oracle!