studyklar
IProg · Skript 6 · Abschnitt 4

Datenbank verbinden mit mysqli

Eine PHP-Seite holt ihre Daten meist aus einer Datenbank. Hier steht, wie PHP sich mit der Erweiterung mysqli zu MySQL verbindet, die Verbindung wieder schließt und Fehler meldet. Rechts laufen die Beispiele, ohne laufenden MySQL-Server: So siehst du echte Fehlermeldungen. Mit Weiter geht es Schritt für Schritt voran.

Worum es geht

Skript 06, Folien 15–20: Datenbankzugriff, mysqli, Fehlerbehandlung.

Ein Shop zeigt Produkte, die in einer Datenbank stehen. Bevor PHP sie lesen kann, braucht es eine Verbindung. Wie baut man sie auf, und was passiert, wenn sie scheitert?

So gehen wir vor:

  1. Welche Wege es von PHP zur Datenbank gibt.
  2. Was vorher laufen muss.
  3. Verbindung aufbauen, Zugangsdaten auslagern, Verbindung schließen.
  4. Fehler als Exception oder als Warnung.
  5. Eine Klausurfrage dazu.

Modul oder Abstraktionsebene

Skript · Datenbankzugriff
  • DB-spezifische Module: MySQL, MaxDB, OCI8, PostgreSQL, …
  • Abstraktionsebenen: ODBC, PDO (PHP Data Objects), …

PHP kann auf zwei Arten mit einer Datenbank reden. Ein DB-spezifisches Modul kennt genau eine Datenbank, etwa mysqli für MySQL. Eine Abstraktionsebene wie PDO (PHP Data Objects) oder ODBC (Open Database Connectivity) bietet dieselben Befehle für viele Datenbanken.

Die Abstraktion ist einfacher, wenn man die Datenbank wechseln will. Laut Notiz auf der Folie bringt sie aber nicht die maximale Performance. Die Vorlesung arbeitet mit mysqli.

Vorher: MySQL muss laufen

Skript · Voraussetzung: DB vorhanden und online
  • Bei XAMPP: Apache UND MySQL aktivieren
  • Zum Anlegen und Füllen der DB kann phpmyadmin genutzt werden
  • Empfehlung: Anlegen eines neuen Benutzers mit eigener Datenbank

MySQL ist eine freie, sehr verbreitete Datenbank, besonders zusammen mit PHP. MariaDB ist ein freier Ableger davon, vom selben Hauptautor; beide verstehen dieselben Befehle.

In XAMPP (dem Paket aus Webserver Apache, MySQL und PHP) müssen Apache und MySQL gestartet sein. Tabellen legt man bequem mit phpMyAdmin an, einer PHP-Anwendung im Browser. Die Folie empfiehlt einen eigenen Benutzer mit eigener Datenbank, statt mit dem Administrator zu arbeiten.

Noch 8 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Abbildung 1

WegBeispieleEigenschaft
DB-spezifisches ModulMySQL (mysqli), MaxDB, OCI8, PostgreSQLnur für eine Datenbank
AbstraktionsebeneODBC, PDOeinfacher, nicht maximale Performance
LegendeZeilen des SchrittsZwei Wege von PHP zur Datenbank.