Welcome to the Creole Project
Creole is a database abstraction layer for PHP5. It abstracts PHP's native db-specific API to create more portable code while also providing developers with a clean fully object-oriented interface based loosely on the API for Java's JDBC.
There are a number of database abstraction packages for PHP. Creole draws from experience with several of these -- noteably PEAR::DB, PEAR::MDB, and ADOdb. Creole was created as a subproject of Propel to meet specific needs that none of the available abstraction layers were able to address in any satisfactory way.
Features
Creole provides the following distinguishing 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.
News
Click on any of the entries below to read the full news message
