"Normal" websites and projects can be static, or have a simple mysql connection.
PDO (and xPDO) is an extra layer between the MySQL server, and what is being outputted. By using PDO you are using "
Object Oriented Programming" - which means you are thinking about objects (and objects which are related to certain objects) instead of tables, rows and databases. This abstraction also makes it possible to move over to different platforms (mssql, monodb or whatever, really) by building schemas and classes - the link between the objects and its actual representation in the database.
Because you’re coding on Objects, and not in SQL queries you can more easily make advanced and customized queries.. like this:
http://www.shawnwilkerson.com/xpdo/using-xpdo-across-tables/xpdo-newquery-innerjoin.html
As you’re using an extra layer in between the query and the result, this will obviously add some overhead and is a little slower then regular queries. Add in that (because of the extra layer) you get the chance to cache the output and you limit the overhead somewhat.