Re: Database abstraction layer

From: Date: Wed, 25 Dec 2002 15:58:59 +0000
Subject: Re: Database abstraction layer
References: 1  Groups: php.pear.general 
Request: Send a blank email to pear-general+get-3074@lists.php.net to get a copy of this message
Thanks for this nice information :) I will download MDB and take a look at it, it seems really interesting for the task that I need to solve in my project. Others out there, i would gladly read your input to this as well! Regards, Fredrik Johansson Lukas Smith wrote:
-----Original Message----- From: Fredrik Johansson [mailto:Fredrik@phpportalen.net] Sent: Wednesday, December 25, 2002 2:08 PM To: pear-general@lists.php.net Subject: [PEAR] Database abstraction layer Hey there! I'm new to PEAR and have decided to use one of the database
abstraction
layer that is included in the PEAR network. Which one of them shall I choose? DB, DBA, MDB etc... there are some
to
choose from. Which one of them are "the best"? Most frequently updated and keept up-to-date with the different DBMS? Which one supports the largest number of databases etc etc.
I am the author of MDB so keep that potential bias in mind. I have never used DBA nor do I know it well. I think it's a layer on top of PEAR DB that builds queries for you in order to make development faster. PEAR DB is very well established and has support for a large number of RDBMS. Its tried and proven. However, it is IMHO technically not a database abstraction layer but more a common API for all supported RDBMS. It does emulate some features (like prepare/execute and sequences) but overall its goal is not to enable you to move from one RDBMS to another without touching your code. But it does make it very easy to move from one RDBMS to another, as the API stays the same and you just have to adjust to the specialities of each RDBMS in the SQL level. PEAR MDB is a merge of PEAR DB and Metabase (http://phpclasses.upperdesign.com/browse.html/package/20/). As such it has pretty much all features of PEAR DB (except object result sets) and Metabase. Due to its Metabase heritage is has a number of very important features that make it possible to write applications that are totally RDBMS independent: most notably datatype and schema abstraction. This means that MDB has its own datatypes. These datatypes can be mapped automatically by MDB to RDBMS native datatypes. In MDB you can make use of schema abstraction. Then you write your schemas in a fairly simple XML syntax. MDB has a manager that then handles inserting, updating and dumping these schemas into/from a choosen RDBMS. At the moment PEAR MDB does lack drivers. Currently there is just a MySQL and a PostGreSQL driver. I hope to soon have time to add more (its not that much work as 80% of what is needed for a driver is cut and paste from existing PEAR DB and Metabase drivers). In terms of activity all 3 are seeing a lot of attention from their respective developers. Regards, Lukas


« previous php.pear.general (#3074) next »