Hauptmenü

Untermenü

PDO - Vorwort

1. PHP Data Objects

Das ist der vollständige Name für PDO. Und genau wie MySQL und MySQLi ist es eine Erweiterung für den Zugriff auf Datenbanken. Allerdings gibt es hier ein paar Features, die neu sind. Hinzu kommen noch ein paar gravierende Unterschiede zu den beiden anderen Erweiterungen.

2. Alte Zöpfe

... in PHP wurden bereits mit MySQLi abgeschnitten. Allerdings fehlte den Entwicklern wohl der Mut, um einen radikalen Schnitt beim Datenbankzugriff vorzunehmen. Das Ergebnis war ein ziemlich fauler Kompromiss zwischen prozeduraler und objektorientierter Zugriffsmöglichkeit. Mit PDO wollte man nun diese Schwachpunkte beseitigen, was im Großen und Ganzen auch gelungen ist.

Ganz wichtig!

PDO ähnelt in vielen Dingen MySQLi, vor allem, was die Funktionalitäten angeht. Darum sollte ihr euch vorher erst mal mit der entsprechenden Theorie zu MySQLi auseinandersetzen, bevor ihr hier weitermacht. Denn hier geht es nur um die Unterschiede. Außerdem wiederhole ich mich nicht gerne. Nur wenn es um diesen Satz geht.

3. Die Vorraussetzungen

Sind fast identisch mit denen von MySQLi.

Verfügbarkeit

Nehmt das allseits bekannte phpinfo(). Wenn ihr folgenden Abschnitt seht, so ist PDO verfügbar, ansonsten müsst ihr es installieren.

Verfügbarkeit PDO

4. Unterschiede zur MySQL- und MySQLi-Erweiterung

5. Die Sache mit den unterschiedlichen Datenbanksystemen

Dieses neue Feature ist ein echter Segen. Früher benötigte man für jedes gottverdammte Datenbanksystem eine eigenen Erweiterung, um damit zu kommunizieren. Bei PDO kann man darauf endlich verzichten.

Wenn

... man die entsprechenden Treiber zur Verfügung hat. Und nun kommen wir zur ersten schlechten Meldung. Laut der aktuellen(?) Doku werden derzeit nur folgende Systeme unterstützt. Beim Rest steht das derzeitige Entwicklungsstadium immer noch auf "experimentell".

Wenn ihr wissen wollt, welche Datenbanksysteme unterstützt werden, so schaut euch die Ausgabe des phpinfo() an. In der Spalte enabled könnt ihr es dann sehen.

Obacht!

PDO stellt nur eine Abstraktionsschicht für den Zugriff auf unterschiedliche Datenbanksysteme dar. Sobald es um SQL-Statements geht, ist hängen im Schacht. Vulgo, PDO schafft den Zugang zu einem Datenbankserver, kümmert sich aber nicht um die Abfragen.

Ein Beispiel

Wenn man auf eine MYSQL-Datenbank beim Query ein LIMIT 0, 10 loslässt, so wird das bei einer Datenbank des MS SQL Servers unweigerlich zu einem Fehler führen, da man dort ein TOP benötigt. Da bedarf es einer zusätzliche Abstraktionsschicht wie zum Beispiel Doctrine.

6. Über dieses Tutorial

Ich werde hier nicht auf jeden Mäusefurz eingehen, sonder mich darauf beschränken, euch das Prinzip und die wichtigsten Möglichkeiten zu zeigen. Einen kompletten Überblick über PDO findet ihr hier.

Bitte

... arbeitet euch zuvor durch das Thema Advanced MySQL. Denn ohne dieses Wissen werdet ihr einige Punkte nicht begreifen.

weiter zum nächsten Abschnitt