DevShed have an article by icarus called Database Abstraction With PHP. As the name suggests it looks at PHP's Database Abstraction Layer. Simply put it the database abstraction layer make it possible to write generic code that can be used to access different types of database without have to re-write the code. For example you could write an application that accesses a MySql database then find you need to run it on an Oracle or any other supported database. Using the Database Abstraction Layer all you should need to change is the connection string.