|
|
|
|
Wegweiser:
Startseite >>
Übersicht PHP-Kurs
>>
Kapitel 4: Datenbanken
| PHP Kurs - Kapitel 4: 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, 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:
Hierzu möchte ich auf unser SQL Tutorial verweisen. Hier gehts zum SQL Tutorial...

Zuerst muß eine Verbindung von PHP zum Datenbank-Server (d.h. dem Computer, auf dem die Datenbank liegt) hergestellt werden:
<?
$verbindung = @mysql_connect("localhost","$benutzer","$passwort");
?>
|
localhost bedeutet, wir verbinden uns zum gleichen Computer, auf dem sich auch der Webserver befindet.
Dies funktioniert, da in unserem Fall Webserver und Datenbank auf einem Rechner liegen.
Wie man vielleicht erahnt, kann also auch auf eine Datenbank auf einem beliebigen anderen Rechner im
Internet zugegriffen werden - vorausgesetzt man besitzt die entsprechende Berechtigung. $benutzer ist ein gültiger Benutzername für diese Datenbank (dies wurde vom Datenbank-Verwalter so festgelegt).
$passwort entspricht dem Passwort des Benutzers.
Beispiel:
if (!$verbindung) {
echo "Keine Verbindung möglich!";
exit;
}
|
Hiermit können wir überprüfen, ob die Verbindung geklappt hat.

Steht die Verbindung, so können wir die Abfrage starten.
Zur besseren Übersicht schreiben wir die SQL-Abfrage in eine Variable ($abfrage).
Diese Abfrage wird an den Datenbank-Server geschickt.
Das Resultat fangen wir in der Variablen $erg auf.
Die erste Variable gibt die Datenbank an, die wir abfragen wollen.
Die zweite Variable enthält den SQL-Befehl, die dritte Variable enthält die Verbindung,
die mit mysql_connect geschaffen wurde.
Beispiel:
|
$verbindung = @mysql_connect("localhost","$benutzer","$passwort");
$abfrage = "SELECT name from kunde";
$erg = mysql_db_query("datenbankname",$abfrage,$verbindung);
|
Die erste Variable gibt die Datenbank an, die wir abfragen wollen.
Die zweite Variable enthält den SQL-Befehl, die dritte Variable enthält die Verbindung,
die mit mysql_connect geschaffen wurde.
Nun kommt eine etwas kniffliger Arbeit:
Wir müssen aus $erg die zurückgelieferten Datensätze auslesen.
Hätten wir einen INSERT, UPDATE oder DELETE Befehl verschickt, bräuchten wir nur testen, ob $erg wahr oder falsch ist, d.h. ob die Abfrage geklappt hat oder nicht.
Da wir aber den SELECT-Befehl an die Datenbank geschickt haben, wollen wir die von der Datenbank zurückgelieferten Datensätze auslesen. Wir haben pro Datensatz die Spalte Name angefordert. Diese lesen wir nun zeilenweise aus:
|
list($Name) = mysql_fetch_row($erg);
|
Die Variable $erg enthält nach der Abfrage Zeilen mit jeweils einer Spalte (Name).
mysql_fetch_row($erg) gibt genau eine Zeile aus.
Zu Beginn steht eine Art Zeiger auf der ersten Zeile, führt man den Befehl mysql_fetch_row($erg) aus,
rutscht der Zeiger zur nächsten Zeile usw. Will man alle Zeilen ausgeben, empfiehlt sich eine Schleife:
while (list($Name,$Art) = mysql_fetch_row($erg)) {
echo "$Name ist ein(e) $Art";
}
|
Die Ergebnisse verarbeiten wir also zeilenweise zu HTML-Text. ·
Am Ende empfiehlt es sich, die Verbindung zur Datenbank zu kappen:
|
mysql_close($verbindung);
|
|
|
|