📋
M307 - Interaktive Webseiten mit Form
  • Interaktive Webseite mit Formular erstellen
  • Tag 1
    • 01-Interaktive Websites
    • 02-Client-Server-Infrastruktur
    • 03 Einrichtung Entwicklungsumgebung
    • 04 PHP
      • 01 Einführung
      • 02 PHP Konfiguration
      • 03 PHP Übersicht
      • 04 Variablen
      • 05 Script Einbindung
      • 06 Arrays
      • 07 Kontrollstrukturen
      • 08 Interne Funktionen
      • 09 Benutzerdefinierte Funktionen
      • 10 Klassen
      • 11 Best Practices
      • 12 Links
    • 05 Strukturierung
      • Aufbau eines MVC (Schritt für Schritt)
    • 06 PHP Aufgaben
      • 01 Bottles of Beer
      • 02 Einfacher Spamfilter
      • 03 Clowns
      • 04 Pixelgenerator
      • 05 Todo-Liste
      • 06 Login-Funktion
      • 07 Navigation
      • 08 Gemeinsames Template
  • Tag 2
    • 01 Formulare Theorie
      • 01 Informationsgruppierung
      • 02 Design- und Strukturgrundlagen
      • 03 Verarbeiten von Formulardaten
      • 04 Validieren von Formulardaten
    • 02 JavaScript Theorie
      • 01 Einfuehrung
      • 02 JavaScript Übersicht
    • 03 Übungsaufgaben zu JavaScript
      • 01 Schere, Stein, Papier
      • 02 Whack-a-Button
    • 04 JavaScript Validierung
      • 01 Validierung
      • 02 Vor- und Nachteile
      • 03 Aufgabe
  • Tag 3
    • 01 Datenbankanbindung
      • 01 Datenbankanbindung
      • 02 Datenbankverbindung
      • 03 Datenbankabfragen
      • 05 Datenlöschung
      • 04 Datenspeicherung
      • 06 Datenmanipulation
      • 07 Refactoring
    • 02 Testing
    • 03 Security Aufgaben
      • 01 Gruppenarbeit
        • 01 Arbeitsauftrag
        • 02 Cross-Site-Scripting (XSS)
        • 03 SQL-Injections
        • 04 Local File Inclusion
      • 02 Eigenes Formular absichern
      • 03 Karl's Website
    • 04 Applikationssicherheit
Powered by GitBook
On this page
  • Datenbankquelle / Connection-String / DSN
  • Fehler bei der Verbindung
  • Weitere Verbindungsattribute
  • PDO::ATTR_ERRMODE
  • PDO::MYSQL_ATTR_INIT_COMMAND
  • Aufgabe: Datenbankverbindung einrichten (Gemeinsam)

Was this helpful?

Export as PDF
  1. Tag 3
  2. 01 Datenbankanbindung

02 Datenbankverbindung

Verbindungen werden durch das Erstellen von Instanzen der PDO-Basisklasse erzeugt. Der Konstruktor der PDO-Klasse erwartet dabei Parameter zur Angabe der Datenbankquelle, den Benutzer und das Passwort (falls vorhanden).

// Datenbankquelle = mysql:host=localhost;dbname=meinedatenbank
// Benutzer = root
// Passwort = ADfk3lox!4foi4hd

$pdo = new PDO('mysql:host=localhost;dbname=meinedatenbank', 'root', 'ADfk3lox!4foi4hd', [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
]);

Datenbankquelle / Connection-String / DSN

Die Datenbankquelle besteht aus einem definierten Connection-String. Darin wird angegeben, was für eine Art Quelle wir ansprechen möchten (mysql), was der Host dieser Datenbank ist (host=localhost) und wie die Datenbank heisst (meinedatenbank):

mysql:host=localhost;dbname=meinedatenbank

Fehler bei der Verbindung

Wenn ein Fehler bei der Verbindung festgestellt wird, wird eine PDOException ausgeworfen. Diese Ausnahme kann mit dem try-catch-Konstrukt für das Debugging abgefangen und angezeigt werden.

try {
    $pdo = new PDO('mysql:host=localhost;dbname=meinedatenbank', 'root', 'ADfk3lox!4foi4hd', [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
    ]);
} catch (PDOException $e) {
   die('Keine Verbindung zur Datenbank möglich: ' . $e->getMessage());
}

Weitere Verbindungsattribute

Über den vierten Parameter können weitere Verbindungsattribute definiert werden.

PDO::ATTR_ERRMODE

Mit dem Wert PDO::ERRMODE_EXCEPTION für PDO::ATTR_ERRMODE wird sichergestellt, dass bei fehlerhaften Datenbankabfragen eine Exception generiert wird. Wird diese Option nicht gesetzt, werden dir allfällige Fehler nicht angezeigt.

PDO::MYSQL_ATTR_INIT_COMMAND

Der unter dieser Option aufgeführte Befehl wird bei jedem Verbindungsaufbau zur Datenbank ausgeführt. Mit SET NAMES utf8; teilen wir dem Server mit, dass unsere Kommunikation im utf8 Zeichensatz erfolgen wird.

Aufgabe: Datenbankverbindung einrichten (Gemeinsam)

Als erstes richten wir in unserem Controller TaskController.php die Verbindung zur eben erstellen Datenbank ein:

try {
    $pdo = new PDO(...);
} catch (PDOException $e) {
   die('Keine Verbindung zur Datenbank möglich: ' . $e->getMessage());
}
Previous01 DatenbankanbindungNext03 Datenbankabfragen

Last updated 4 years ago

Was this helpful?