Drupal 7 - Datenbankarbeit über PHP PDO
Mit dem Umstieg auf Drupal 7 wechseln wir auf die neue Drupal DB-Abstraktionsschicht API, die auf PDO basiert. PDO wird schon lange im Zend Framework sowie in vielen anderen PHP-Frameworks verwendet. In Drupal 6 war das Schreiben von SQL-Abfragen so gut – warum also etwas Neues?
Fangen wir damit an zu klären, was PDO eigentlich ist.
PDO ermöglicht es, PHP-Code für die Arbeit mit einer Datenbank so zu schreiben, dass er problemlos mit einer anderen Datenbank funktioniert. Angenommen, Ihre Seite hat bisher mit MySQL gearbeitet, dann können Sie ohne großen Aufwand auf PostgreSQL wechseln. Bezüglich Oracle bin ich mir noch nicht sicher, da ich es selbst nicht ausprobiert habe, aber es sollte ebenfalls funktionieren.
PHP Data Objects (PDO) ist eine Erweiterung für PHP, die eine einfache, einheitliche Schnittstelle für den Zugriff auf Datenbanken bereitstellt. Für jede Datenbank gibt es einen PDO-Treiber, der durch spezifische Funktionen des jeweiligen Datenbankservers erweitert werden kann.
PDO bietet Zugriff auf eine Abstraktionsschicht, die wiederum für die Verarbeitung von Anfragen und die Darstellung von Daten verwendet wird. PDO stellt jedoch keine Abstraktion der Datenbank dar, es schreibt SQL nicht um und emuliert fehlende Funktionen einzelner Datenbankserver nicht. Wenn Sie diese Funktionen benötigen, sollten Sie eine vollwertige Abstraktionsschicht verwenden. PDO ist kompatibel mit PHP 5.1 und höher und als PECL-Erweiterung für PHP 5 verfügbar. PDO nutzt neue OOP-Funktionalitäten im PHP 5-Kern und unterstützt keine älteren PHP-Versionen.
Das bedeutet, dass Entwickler plattformübergreifenden Code noch einfacher schreiben können. PDO ist keine Abstraktionsschicht wie PearDB, sondern eher ein Zugang zur Datenbank als ein API.
Wenn wir Module für Drupal 7 schreiben wollen, müssen wir genau den PDO-Syntax für unsere Abfragen verwenden, damit unsere Module mit vielen verschiedenen Datenbanken kompatibel sind.