MB Dev .tech
Registrieren Login

PHP & Datenbank · PDO Überblick

← Zurück zu PHP & Datenbank

PDO (PHP Data Objects) ist die moderne Standard-Schnittstelle, um mit Datenbanken aus PHP heraus zu arbeiten. Du kannst damit z.B. MySQL/MariaDB, PostgreSQL oder SQLite ansprechen – in einer ähnlichen API.

Merke
PDO ist nicht nur „bequemer“, sondern auch sicherer

Der größte Vorteil für Anfänger: Prepared Statements. Damit werden Werte sauber gebunden, statt SQL als Text zusammenzubasteln. Das ist die wichtigste Schutzmaßnahme gegen SQL-Injection.

1) Was macht PDO konkret?

Ganz praktisch brauchst du PDO für diese Dinge:

  • Verbindung zur Datenbank herstellen
  • SQL-Abfragen ausführen (SELECT, INSERT, UPDATE, DELETE)
  • Ergebnisse abrufen (z.B. als Array)
  • Fehler behandeln und sauber debuggen
  • Transaktionen nutzen (BEGIN/COMMIT/ROLLBACK)

In einem echten Projekt sieht der Ablauf meistens so aus: Verbindung → Query vorbereiten → Parameter binden → ausführen → Ergebnis verarbeiten.

2) Mini-Beispiel: Wie PDO-Code grundsätzlich aussieht

Dieses Beispiel ist absichtlich „neutral“ gehalten. Es zeigt nur die Struktur – du musst das nicht direkt ausführen.

Typischer Ablauf

// 1) Verbinden
$pdo = new PDO($dsn, $user, $pass);

// 2) SQL vorbereiten (mit Platzhaltern)
$sql  = "SELECT id, name FROM customers WHERE email = :email";
$stmt = $pdo->prepare($sql);

// 3) Werte binden
$stmt->execute(['email' => 'lina@example.com']);

// 4) Ergebnis holen
$row = $stmt->fetch(PDO::FETCH_ASSOC);
Tipp
Die Platzhalter sind das „Sicherheits-Feature“

Statt ... WHERE email = '$userInput' nutzt du :email. PDO kümmert sich darum, den Wert korrekt und sicher einzusetzen.

3) Warum man SQL nicht als String zusammenbauen sollte

Ein häufiger Anfänger-Fehler ist, Benutzereingaben direkt in SQL einzubauen. Das ist nicht nur fehleranfällig, sondern kann richtig gefährlich werden.

Achtung
So bitte nicht (Beispiel für „zusammenkleben“)

Wenn du SQL per String zusammenbaust, riskierst du SQL-Injection. Selbst wenn „es bei dir funktioniert“, ist es keine sichere Lösung.

Unsicherer Stil (nur zum Verstehen)

// NICHT nachmachen:
$email = $_GET['email']; // kommt vom Benutzer

$sql = "SELECT id, name FROM customers WHERE email = '" . $email . "'";

Prepared Statements lösen genau dieses Problem – und machen den Code nebenbei auch sauberer.

4) Was kommt als Nächstes?

Wir gehen Schritt für Schritt durch genau die Themen, die du in der Praxis brauchst:

  • PDO Verbindung: DSN, Charset, sinnvolle Optionen
  • Prepared Statements: Platzhalter, execute, Parameter
  • Daten abrufen: fetch, fetchAll, typische Muster
  • Fehler & Handling: Exceptions, Debugging, saubere Fehlermeldungen
Merke
PDO ist die Brücke zwischen „Code“ und „Daten“

Wenn du PDO verstanden hast, kannst du fast jede typische Web-App bauen: Login, Profile, Listen, Suche, Admin-Bereich, kleine Shops – alles basiert auf dem Prinzip.