Über die Adapter-Klassen kannst du dann beispielsweise bestimme Abfragen kapseln, die bei den einzelnen SQL-Datenbanken unterschiedlich sind. Ich denke da nur daran, dass quasi jede Datenbank eine andere Abfrage für die Datenbank-/Tabellenstruktur und dann auch noch unterschiedliche Spaltentypen hat. Beispielsweise gibt es bei MySQL keinen direkten Typ für binäre Daten, PostgreSQL hingegen schon. Oder die Syntax für die Angabe des Limits und Offsets unterscheidet sich auch. Oder nicht zu vergessen, dass es Datenbanken gibt, die ein Rollback ermöglichen, andere hingegen nicht. Wenn du jetzt aber Rollbacks bei Möglichkeit verwenden willst, dann solltest du in deiner Datenbankfrage lieber vorher schauen, ob der Datenbanktyp das überhaupt kann. Wenn ja, dann kannst du die Abfragen in einem solchen Kontext abschicken, wenn nicht, dann solltest du sie entweder wie normale Abfragen behandeln oder dir was einfallen lassen, wie du ein Rollback simulieren könntest. Und was außerdem noch recht ekelhaft bei PDO ist: die Angabe der Verbindungsdaten. Ich persönlich löse das lieber über ein Array und lasse mir den Data Source Name (DNS) entsprechend zusammen bauen.