I prefer PDO, as that's where all database extensions should be going eventually anyway, and all popular databases including many that aren't already have PDO drivers built into PHP. PDO is intended to provide a pretty reliable API that can port through many databases seamlessly. Is it perfect, no, but it provides a good starting foundation. This is why the most popular ORM and DBAL libraries are based on it, since it makes writing portable database code simpler. My recommendation would be to implement PDO, and once that's done, to add any other layers as development time arises to support the more niche use cases that require a database specific driver.