Os famosos “Database Abstraction layer” estão sendo cada dia mais ultilizados, mas tem gente que ainda nao entende o funcionamento dos mesmos, ou não veem vantagem na ultilização. Pois bem, eles são responsáveis por “padronizar” a manipulação em bancos de dados diferentes, ou seja, se voce for imigrar seu banco de dados de MySQL para Oracle, não vai precisar mudar nada no código bruto, e sim na configuração. Ganhando tempo e evitando uma série de gambiarras que provavelmente acabariam aparecendo no meio do código na tentativa de reproduzir um mysql_fetch_array para um oracle_fetch_array por exemplo ou qualquer coisa parecida.
Resumindo, você trabalha em qualquer banco de dados sem precisar mudar a sintaxe.
Segundo nosso amigo wikipedia :
Abstração é a habilidade de concentrar nos aspectos essenciais de um conexto qualquer, ignorando características menos importantes ou acidentais. Em modelagem orientada a objetos, uma classe é uma abstração de entidades existentes no domínio do sistema de software.
No PHP, os mais ultilizados são o pear/DB, pear/MDB2, ADOdb além do DB no Zend Framework. Ainda não foi o suficiente ? estarei escrevendo a parte 2 em breve!