PHP Data Objects kurz erklärt

Profilbild von Florian Schmidt
Vom 25. November 2014

Mit PHP Data Objects, kurz PDO, lässt sich der Datenbankzugriff einer Anwendung sehr stark abstrahieren. Wie das genau funktioniert möchte ich dir im Folgenden erläutern.

Dieser Artikel wurde zuletzt vor über einem Jahr aktualisiert. Die Inhalte könnten inzwischen nicht mehr aktuell sein.

Bisher war es so, das bei einer Anwendung mit Datenbankzugriff die Auswahlmöglichkeit der Datenbank im Nachhinein nicht mehr gegeben war, es sei denn, die Zugriffe wurden über extra Funktionen gelöst, die sich im Nachhinein noch einfach ändern lassen. Seit der PHP Version 5.1 hat sich das alles stark vereinfacht, es wurden damals die PDOs eingeführt. Da die Version 5.1 nun schon einige Jahre auf dem Buckel hat sollte inzwischen jeder Anbieter die Data Objects unterstützen.

Die Vorteile dürften auf der Hand liegen: mit PDO brauchst du nur eine Zeile in deinem Projekt ändern, schon kannst du von MySQL zum Beispiel zu PostgreSQL wechseln.

Anwendung

Die Anwendung ist wirklich simpel:

$db = new PDO("mysql:host=localhost;dbname=datenbank", $benutzer, $passwort);

Auch andere Datenbanken sind möglich:

$db = new PDO('sqlite:pfad/zur/datenbank.sqlite3'); 
$db = new PDO('pgsql:host=localhost;port=5432;dbname=datenbank;user=benutzer;password=passwort');

Nun lassen sich ganz einfach Statements ausführen. Dabei kann man unterscheiden zwischen schreibenden (INSERT, UPDATE, DELETE) und lesenden (SELECT) Zugriffen. Letztere geben ein Rückgabewert aus und müssen dementsprechend abgefangen werden. Dafür gibt es nun zwei unterschiedliche Befehle:

$db->exec('INSERT INTO tabelle1 (id, name) values ('eine ID', 'ein Name')'); 
$rückgabe = $db->query('SELECT * FROM tabelle1'); 

Die Ausführung von Befehlen ist wie man sieht sehr einfach. Rückgabewerte lassen sich mit folgender Kurzschreibweise schleifenmäßig durchlaufen:

foreach($db->query('SELECT * FROM tabelle1') as $row) { 
    //Code 
}

Fazit

Wie man sieht sind die PDOs eine wirklich einfache Möglichkeit, den Datenbankzugriff zu abstrahieren. Es gibt noch einige weitere Möglichkeiten, die ich in späteren Beiträgen vorstellen werde.

  • # PHP
  • # SQL
  • # Webentwicklung

Du suchst die Kommentare?

Keine Sorge, die sind nicht verloren! Es dauert aber noch eine Weile, bis sie wieder zu sehen sind und du neue Kommentare hinterlassen kannst.

Netzleben ist frisch von einer alten Kirby-Website auf eine neue, Statamic-basierte Website umgezogen. Leider ist das Plugin für Kommentare mit Statamic 3 noch nicht kompatibel.