PHP Data Objects (PDO) foram introduzidos como uma extensão PECL em versões anteriores ao PHP 5.0, e se tornaram parte do core do PHP na versão PHP 5.1.x. A extensão PDO disponibiliza uma interface consistente para acesso a banco de dados, e é usado paralelamente aos drivers PDO específicos para cada banco de dados. Cada driver também pode ter funções específicas próprias, mas a funcionalidade básica de acesso aos dados tais como consultas e busca de dados são cobertas por funções do PDO, usando o driver nomeado em PDO::__construct().
Note que a extensão PDO. e seus drivers, destinam-se a ser construídos como extensões compartilhadas. Isso irá permitir atualizações diretas do PECL, sem forçá-lo a recompilar todo o PHP.
No momento do lançamento da versão do PHP 5.1.x, o PDO está mais do que pronto para testes gerais e pode ser utilizado na maioria das situações. Entretanto, é importante entender que o PDO e seus drivers são relativamente novos e podem faltar certas características específicas; analise cuidadosamente o PDO antes de usá-lo em novos projetos.
Código legado geralmente conta com extensões de banco de dados pré-existentes, que ainda são mantidas.
No PHP 4, MySQL 3 era suportado nativamente. Com o lançamento do PHP 5.0 houveram duas novas extensões do MySQL, chamadas 'mysql' e 'mysqli', que foram designadas para dar suporte ao MySQL < 4.1 e MySQL 4.1 e superiores, respectivamente. Com a introdução do PDO, que proprociona uma interface muito rápida para todas as APIs de banco de dados suportadas pelo PHP, o driver PDO_MYSQL pode suportar qualquer uma da versões atuais (MySQL 3, 4 or 5) de código PHP desenvolvido para PDO, dependendo da versão da biblioteca MySQL usada durante a compilação. As extensões antigas do MySQL continuam por razões de retrocompatibilidade, mas não vem habilitadas por padrão.
No PHP 5.0.x, o suporte ao SQLite 2 foi fornecido pela extensão interna sqlite, que também está disponível como uma extensão do PECL no PHP 4.3 e PHP 4.4. Com a introdução od PDO, a extensão sqlite age como um driver 'sqlite2' para o PDO; é devido a isso que a extensão sqlite no PHP 5.1.x tem uma dependência sobre a extensão PDO.
PHP 5.1.x disponibiliza várias alternativas de interface ao sqlite:
A extensão do sqlite disponibiliza a "clássica" API procedural/OO sqlite que você deve ter usado em versões anteriores do PHP. Isto também disponibiliza o driver PDO 'sqlite2', que permite você a acessar banco de dados SQLite 2 legados usando API PDO.
PDO_SQLITE disponibiliza a versão 3 do driver 'sqlite'. A versão 3 do SQLite é muito superior a versão 2 do SQLite, mas os formatos de arquivo entre as as versões não são compatíveis.
Se o seu projeto baseado em SQLite já foi desenvolvido e foi escrito em versões anteriores do PHP, então você pode continuar usando ext/sqlite sem problemas, mas você precisará habilitar explicitamento o PDO e sqlite. Novos projetos devem usar o PDO e o driver 'sqlite' (versão 3), que é mais rápido que o SQLite 2, teve melhorias de concorrências e locks, e no suporte de prepared statements e binary columns nativamente.
Você deve habilitar o PDO para usar a extensão SQLite. Se você quiser desenvolver a extensão PD0 como uma extensao compartilhada, então a extensão SQLite também deve ser desenvolvida como compartilhada. O mesmo se mantém verdadeiro para qualquer extensão que disponibiliza um driver PD0.