Weiter Zurück [Inhalt] Online Suche im Handbuch

58.2 Das WWW-Interface

Nun ist die Datenbank unter MySQL definiert. Mit Hilfe des PHP3 Interfaces kann man nun über den Apache WWW-Server auf die Datenbank zugreifen. Das fertige Skript muß man nun einfach in das Homeverzeichnis des WWW-Servers kopieren. Das war´s im Prinzip auch schon.

Das Skript enthält eine switch Anweisung am Ende, die überprüft, welchen Status die verdeckte Variable $state besitzt. Dieser Status variiert in Abhängigkeit der vorhergehenden Aktionen. Beim ersten Aufruf wird eine Funktion namens Main_Menu aufgerufen, welches eine Reihe von RADIO Buttons zeigt, welches es dem User erlaubt, auszuwählen, ob er nun einen neuen Kontakt anlegen möchte, oder ob er Kontakte anzeigen möchte.

Wenn er sich für die Anzeige entscheidet, dann wird das Skript erneut aufgerufen, diesmal aber mit der Variablen $state auf list gesetzt. Das führt dazu, daß die List Funktion aufgerufen wird.

Hier sehen wir nun die Abfrage des SQL Servers mit PHP.

Die Abfrage ist einfach zu verstehen. Zuerst wird eine Verbindung zu dem Server aufgebaut. Bis dahin ist noch keine Datenbank ausgewählt. PHP fordert, daß die Datenbank genau angegeben wird, schließlich kann ein MySQL Datenbankserver bis über 1000 Datenbanken und Tabellen verwalten.

Die nächste Zeile des PHP Skriptes zeigt das. Die MySQL Funktion bindet sich an eine Datenbank mit dem ersten Parameter und führt das Kommando, welches als zweiter Parameter angegeben ist, aus. Danach speichert es alle von SQL zurückgegebenen Reihen ab, und ordnet eine Variable $result als Zeiger auf die zurückgegebenen Werte zu.

Der Standard, wie man nun an die Werte kommt, ist eine Schleife zu konstruieren, die über alle zurückgegebenen Zeilen läuft, und mit Hilfe der Funktion mysql_result die Werte ausliest.

Wie man sehen kann, ist das alles recht einfach zu verstehen, da sich PHP3 an BASIC anlehnt.

Nachdem der User die Informationen in sein Formular eingegeben hat, wird die Funktion Commit_Contact aufgerufen, die die Daten dann in die Datenbank einfügt. Nachem die Anbindung an die Datenbank hergestellt ist, wird ein SQL Statement abgesetzt, welches das aktuelle Datum und die Uhrzeit übermittelt, und einen Kommentar erzeugt, wann der Kontakt eingegeben wurde.

Hierzu wird die Funktion mysql_insert_id verwendet, die dem Kontakt einen eindeutigen Wert zuordnet, damit man mit einer Abfrage auch nach der ID suchen kann, die einem neuen Kontakt zugeordnet wurde.

In SQL müssen String Typen immer "gequotet" werden, Zahlen hingegen nicht.

Das größte Problem bei MySQL Datenbanken ist es, die Rechte für die Zugangskontrolle zur Datenbank zu vergeben. Sie enthält drei Tabellen: User, DB und Host. Die wichtigste Tabelle ist die User Tabelle. Die anderen kann man in der Praxis vernachlässigen und leer lassen, ohne zumindest einen Eintrag in die User Datenbank ist ein Zugriff auf die neu angelegte MySQL Datenbank nicht möglich.

Die Dokumentation grant enthält eine ausführliche Anleitung, wie man diese Rechte anlegt. Hier ein Tip: Vergessen Sie die Host Tabelle und setzen Sie alle Host Felder auf %, welches in SQL als Wildcard Buchstabe gilt, und auf alle Strings zutrifft. Das Feld Passwort darf während des Aufbaues der Datenbank ebenfalls leer bleiben.

Die Privilegien, die in der User Tabelle angegeben werden, setzen sich über diejenigen hinweg, die in der DB Tabelle eventuell schon entzogen werden, weil diese mit ODER Verknüpft werden. Man sollte alle Privilegien in der User Tabelle auf N setzen, um sicherzugehen, daß man nur Zugriffe von Datenbank zu Datenbank erlaubt hat.

Wenn die Rechte aufgesetzt sind, empfielt es sich, mit mysqladmin reload am Prompt des mysql Toolkits die Privilegien zu aktualisieren.


Weiter Zurück [Inhalt] Online Suche im Handbuch