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!