1. Aufbau einer MySQL-Datenbank
Was immer auch ein PHP-Skript verarbeitet früher oder später müssen Daten für weitere Skriptaufrufe abgespeichert werden. Variableninhalte sterben mit dem Ende des Skriptaufrufs und verschwinden aus dem Speicher. Um Daten abzuspeichern können diese Beispielsweise in eine Datei abgelegt werden. Das PHP-Skript öffnet dabei eine Datei und schreibt die Daten in das Skript rein, so als würde ein Benutzer mit einem Texteditor eine Datei bearbeiten. In PHP kann dies jedoch aufwendig werden, da die Daten mehr oder weniger einfach so in der Datei liegen. Bei großen Inhalten heißt dies die richtige Stelle zu suchen und die entsprechenden Daten auszulesen bzw. zu bearbeiten. So könnte z.B. ein Gästebuch implementiert werden, wo die einzelnen Gästebucheinträge in einer Datei abgelegt werden.
User|20. Jan 2008|Echt gute Seite User2|11. Feb 2008|Hallo Paul, wie gehts? User3|13. Feb 2008|Coole Seite. Besuch auch mal meine Homepage
Jede Zeile wäre dann ein einzelner Gästebucheintrag und das Zeichen
|
dient als Trennzeichen um den Benutzernamen, das Schreibdatum
und den eigentlichen Text zu trennen. Das PHP-Skript zum Anzeigen hangelt
sich nun durch die Datei und liest die Zeilen aus und trennt die Inhalte
mit explode an den |
-Zeichen.
Bei der Verwendung einer relationalen Datenbank wie MySQL wird ein anderer Weg eingeschlagen. Die Daten werden dabei nicht in Dateien abgelegt sondern in eine Tabelle. Pro Eintrag für diese Tabelle wird eine Zeile angelegt, der auch Datensatz genannt wird. Ein Gästebucheintrag würde sich als Zeile bzw. Datensatz in dieser Tabelle wiederfinden. MySQL-Datenbanken verwenden folgenden Aufbau.
-
Als Grundgerüst einer MySQL-Datenbank besteht die MySQL-Anwendung selbst. Es ist technisch gesehen erstmal nur ein installiertes Programm welches ständig läuft (wie ein Webserver) und auf Anfragen wartet. Der Zugriff auf die Datenbank ist dabei durch ein Loginsystem geschützt.
-
Innerhalb der MySQL-Datenbank existieren die eigentlichen Datenbanken. Diese bilden die Arbeitsbereiche für die Benutzer die sich an das System angemeldet haben. Je nach Login und Einstellungen sind für einen Benutzer nur bestimmte Datenbanken zur Verfügung gestellt. Bei gängigen Webhostern erhalten die Kunden jeweils eine eigene Datenbank innerhalb der selben MySQL-Datenbank. So erhält z.B. der Kunde
usr_123456
alleinigen Zugriff auf seine Datenbankusr_123456
und kann in dieser Datenbank arbeiten. -
Innerhalb einer Datenbank können Tabellen erstellt, bearbeitet und gelöscht werden. Am Anfang ist dieser Bereich leer und der Benutzer muss erst Tabellen anlegen. Dafür wird meistens ein Verwaltungsprogramm wie phpMyAdmin verwendet. Dieses Programm bietet eine Weboberfläche zum Verwalten der Datenbanken und Tabellen in MySQL. Eine Tabelle besteht dabei aus einer Liste von Spaltennamen und Typen sowie aus einigen Verwaltungseigenschaften wie Primärschlüssel und Indizes.
-
Innerhalb der Tabelle werden dann die eigentlichen Datensätze hinzugefügt. Jeder Datensatz ordnet jeder Spalte der Tabelle einen Wert zu. So kann z.B. ein Datensatz hinzugefügt werden, dessen Spaltenwert für
Benutzer
den WertFoobar
enthält und den Spaltenwert fürGeburtstag
den Wert1.1.1980
zuordnet. Ein weitere Datensatz für einen anderen Benutzer ordnet stattdessen den Spalten die WerteUserBar
und2.4.1975
zu. Beide Datensätze befinden sich jedoch in der selben Tabelle. So eine Tabelle sieht z.B. wie folgt aus.Beispieltabelle Benutzer Geburtstag Foobar 1.1.1980 UserBar 2.4.1975
Für die Verwendung einer MySQL-Datenbank werden in PHP vier Angaben benötigt. Diese werden entsprechend vom Webhoster bzw. Administrator mitgeteilt.
-
Host - Mit dem Host wird der Rechner angegeben auf dem der MySQL-Server installiert ist. Dies kann z.B. ein anderer Rechner sein, der z.B. über
db23.example.com
erreichbar ist, kann jedoch auch der gleiche Rechner sein auf dem der Webserver läuft. In diesem Fall wirdlocalhost
als Host verwendet. -
Username - Der Benutzername zum Einloggen in die Datenbank.
-
Password - Das Password in Verbindung mit dem Benutzernamen.
-
Database - Die Datenbank in dieser der Kunde arbeiten darf. Eine Webanwendung benutzt dabei nur Tabellen aus dieser Datenbank.