Dynamische Webseiten-Generierung, Vorlesung 4

<- Vorlesung 3 Übungen Vorlesung 5 ->


14) Zugriff auf Datenbanken

Eines der Haupteinsatzgebiete von PHP ist der Online-Zugriff auf Datenbanken.

Was ist eine Datenbank?

Vereinfacht gesagt: Eine Datenbank enthält Datensätze, die mit einer speziellen Sprache bearbeitet werden können. Zum Beispiel können bestimmte Datensätze ausgelesen werden, neue Datensätze hinzugefügt werden, Datensätze können aktualisiert oder gelöscht werden. All diese Vorgänge nennt man Abfragen.

Weit verbreitet sind sogenannte SQl-Datenbanken, d.h. Datenbanken, die mit der Sprache SQL (Abkürzung für Structured Query Language) bearbeitet werden können. PHP kann mit Datenbanken verschiedener Hersteller umgehen, besonders beliebt ist die Datenbank MySQL.

Vorteile von MySQL:
relativ schnell und kostenlos.

Um eine SQL-Abfrage mit PHP auszuführen, muß zuerst die Datenbank geöffnet werden (vergleichbar mit dem Zugriff auf eine Datei), dann wird die SQL-Befehlszeile an die Datenbank geschickt, die Antwort der Datenbank wird aufgenommen und schließlich wird die Datenbank-Verbindung wieder geschlossen.

Zuerst müssen wir uns etwas Hintergrundwissen über die SQL-Befehlszeile verschaffen:


15) SQL-Grundlagen

SQL-Datenbanken bestehen aus 1 oder mehreren sogenannten Tabellen. Jeder Datensatz der Datenbank ist genau eine Zeile in einer Tabelle.

Beispiel: Ein Kneipenführer für Bayreuth.

Die Tabelle kneipen:

ID Name Art Note Kommentar
1 Herzogkeller Biergarten 1 Sehr schöner Baumbestand
2 Glenk Biergarten 1 Gute Bratwürste
3 ... ... ... ...

Man kann nun auf eine dieser Tabellen zugreifen, aber auch Tabellen verküpfen. Wir wollen uns hier der Einfachkeit halber auf eine einzige Tabelle beschränken.

Es gibt im wesentlichen vier Abfragemöglichkeiten:

Will man z.B. alle kneipennamen, die sich in der Datenbank befinden, auslesen, so gibt man den SQL-Befehl
	SELECT Name FROM kneipen;
ein. Will man Name und Art der Kneipe ausgeben, so lautet der Befehl
	SELECT Name,Art FROM kneipen;
Soll schließlich die ganze Zeile ausgelesen werden, so genügt der Befehl
	SELECT * FROM kneipen;
Die auszulesenden Datensätze können nun noch weiter spezifiziert werden:
	SELECT * FROM kneipen WHERE NOTE=1;
gibt nur die Datensätze aus, die in der Spalte Note eine 1 enthalten. Sortiert können die Datensätze mit
	SELECT * FROM kneipen WHERE NOTE=1 ORDER BY Name;
werden.

Neue Datensätze werden folgendermaßen hinzugefügt:

	INSERT kneipen (Name,Art,Note,Kommentar) VALUES ('Glenk','Biergarten','1','Gute Bratwürste');
Vorhandene Datensätze können mit
	UPDATE kneipen SET Note='2',Kommentar='Die Bratwürste lassen nach' WHERE ID=2;
überschrieben werden.

Das soll als erster Einblick genügen. SQL ist eine sehr mächtige Abfragesprache, insbesondere für Kombinationsabfragen aus mehreren Tabellen gleichzeitig (inner joins, outer joins,...) existiert eine eigene, beinahe mathematische Theorie.


16) SQL-Befehle mit PHP

Die obigen SQL-Befehle verwenden wir nun mit PHP. Wir wollen als Beispiel alle Datensätz aus der Tabelle kneipen in der Datenbank www2 ausgeben.

Dies waren nur die einfachsten MySQL-Befehle in PHP, die aber schon für sehr viele Anwendungen ausreichen. Weiterführende Befehle kann man im Handbuch nachlesen.


<- Vorlesung 3 Übungen Vorlesung 5 ->

Alfred.Wassermann@uni-bayreuth.de