Erstes Beispiel: Lesen mit PDO
Wir schreiben eine eigene Klasse, die PDO verwendet, deshalb ist es logisch, eine Subklasse von PDO zu entwerfen.
Die Verbindung zur Datenbank herstellen
Die Verbindung zur Datenbank stellt der Konstruktor der PDO-Klasse (Superklasse) her. Wir müssen diesen explizit aufrufen.
DSN (erster Parameter)
- Der erste Parameter für den Konstruktor ist ein sog. DSN (Wikipedia: DSN).
- Jedes Datenbank-System braucht einen spezifischen DSN, in diesem Beispiel verweden wir den DSN für MySQL.
- Tipp für alle Nicht-Angelsachsen, also komische Menschen, die mit UTF-8 in Datenbanken arbeiten müssen:
Gib im DSN auch gerade den charset an:
$dsn = "mysql:host=localhost;dbname=test;charset=utf8";
Je nach Konfiguration deines Entwicklerstacks ist das nicht nötig, es schadet aber nichts, wenn das machst.
- 8ung Stolperstein: Wenn du "localhost" im DSN angibst, geht die Klasse davon aus, dass die Standardports der Datenbank verwendet werden. Hast du in deiner Entwicklungsumgebung jedoch andere Ports definiert, musst du die IP-Nummer (meistens
host=127.0.0.1) plus den Port (port=####) angeben.
Je nach Konfiguration deines Entwicklerstacks ist dieser Schritt nicht nötig!
PDO-Optionen für die Verbindungsaufnahme (vierter Parameter)
- Wenn du wie hier mit try und catch (s.o.) arbeiten möchtest, ist diese Option für die Fehlerbehandlung die sinnvollste:
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
- Mit dieser Option werden die Resultate in Form von assoziativen Arrays retour kommen. In den meisten Fällen ist das der effizienteste Weg, die Resultate in HTML auszugeben:
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
| Vorname |
Nachname |
Strasse |
Nr |
PLZ |
Ort |