PHP und MySQL sind ein unzertrennliches Paar, und unzählige Content-Management-Systeme und webbasierte Anwendungen setzen auf diese Kombination. Die Programmiersprache PHP bietet bezüglich der Sprachmerkmale beste Voraussetzungen zur Kommunikation mit einer Datenbank. MySQL ist kostenfrei und läuft auf vielen Betriebssystemen. Die ideale Kombination also! Ebenso ist es recht einfach, mit PHP auch andere Datenbanken anzusprechen.
Webbasierte Anwendungen erfordern in der Regel auch eine umfassende Datenverwaltung. Das relationale Datenbankschema ist seit vielen Jahren Standard und nach wie vor für die meisten Anwendungszwecke bestens geeignet. Im Zusammenhang mit PHP wird sehr häufig mit MySQL-Datenbanken gearbeitet. MySQL ist eine Open-Source-Datenbank, die seit Jahren zur Verfügung steht und einen hohen Verbreitungsgrad hat, wozu gute Dokumentationen, Hilfen im Web und vielfältige Werkzeuge beitragen. In zahllosen Projekten hat sich die Zusammenarbeit von PHP und MySQL über Jahre bewährt. Das ist für uns Grund genug, sich intensiv damit auseinanderzusetzen (Kasten „Artikelserie“).
Wie gehen wir vor? Zunächst wird gezeigt, wie wir eine einfache Datenbank in MySQL anlegen und administrieren. Dazu sind Basiskenntnisse in der Datenbanktheorie notwendig. Im Textkasten „Basics der Datenbanktheorie“ werden die wichtigsten Begriffe zum relationalen Datenschema erklärt. Im zweiten Schritt geht es darum, eine Verbindung zwischen dem PHP-Programm und der Datenbank herzustellen. Die Daten werden üblicherweise in einem Formular erfasst, nach der Validierung an die Datenbank übertragen und dort gespeichert. Die in der Datenbank abgelegten Daten muss man natürlich auch wieder abrufen können, um sie anzuzeigen oder weiterzuverarbeiten.
Alle Arbeiten mit der Datenbank erfolgen mithilfe von Transaktionen. Dazu dient die allgemeine Datenbanksprache SQL, auf die wir im Lauf des Artikels noch zurückkommen werden. Damit ist die Agenda für diesen Teil unserer einführenden PHP-Serie abgesteckt. Das Vorhaben ist wie immer anspruchsvoll, lassen Sie uns darum direkt starten!

Datenbank erstellen
In diesem Schritt zeigen wir, wie man die grundlegende Struktur einer Datenbank anlegt. Unser Beispiel wird sehr minimalistisch ausfallen, d. h. die Datenbank wird nur aus einer Tabelle mit drei Spalten bestehen. Dennoch werden wir alle wichtigen Schritte daran zeigen. Zunächst ist MySQL zu starten. Wir gehen wieder davon aus, dass Sie den Server XAMPP verwenden (siehe Teil 1 unserer Serie). Starten Sie den Server und damit auch gleichzeitig die MySQL-Datenbank, indem Sie die Datei xampp_start.exe aus dem Explorer heraus ausführen. Den Erfolg dieser Maßnahme können Sie über das Control-Panel (xampp-control.exe) kontrollieren (Abb. 2).

Für das Anlegen der Struktur der Datenbank gibt es zwei Varianten:
-
Automatisiert: Aus dem Quellcode des Programms wird mittels PHP und den entsprechenden SQL-Befehlen die Datenbank erstellt. Das passiert immer dann, wenn die Tabellenstruktur der Datenbank bereits feststeht und automatisiert, zum Beispiel im Rahmen einer Programminstallation, auf dem Server erstellt werden soll.
-
Manuell: Man erstellt die Struktur der Datenbank manuell. Meist bedient man sich dazu einer Bedienoberfläche. In der PHP-Welt und für den Zugriff auf MySQL-Datenbanken funktioniert das sehr gut mithilfe des kostenfreien Tools phpMyAdmin.
Wie wollen hier keine Ausnahme machen und eine erste Datenbank mithilfe von phpMyAdmin erstellen. Das Tool selbst ist auch ein PHP-Programm und läuft daher im Browser. Wechseln wir darum also in den Browser und rufen unseren lokalen Server (http://localhost) auf; phpMyAdmin erreichen wir unter http://localhost/phpmyadmin/ (Abb. 3).

Damit gelangen wir zur Administrationsoberfläche und können bestehende Datenbanken verwalten oder eine neue Datenbank anlegen. Wir klicken auf Neu, um eine neue Datenbank zu erstellen, für die ein aussagekräftiger Name zu vergeben ist: Für den ersten Test nennen wir sie „meineDatenbank“. Die Datenbank wird erstellt und wir gelangen zur nächsten Seite, auf der wir aufgefordert werden, eine erste Tabelle zu erstellen. Dabei muss unmittelbar die Anzahl der Spalten – also die Zahl der Datenfelder – angeben werden. Im nächsten Schritt sind für jedes Datenfeld der Datentyp (Tabelle 1) und weitere Eigenschaften zu bestimmen.
Datentyp | Speichergröße | Wertebereich |
---|---|---|
TINYINT | 1 Byte | Ganzzahlen: 0 bis 255 Mit Vorzeichen: -128 bis +127 |
SMALLINT | 2 Bytes | Ganzzahlen: 0 bis 65 535 Mit Vorzeichen: -32 768 bis +32 767 |
MEDIUMINT | 3 Bytes | Ganzzahlen: 0 bis 16 777 215 Mit Vorzeichen: -8 388 608 bis +8 388 607 |
INT | 4 Bytes | Ganzzahlen: 0 bis 4 294 967 295 Mit Vorzeichen: -2 147 483 648 bis +2 147 483 647 |
BIGINT | 8 Bytes | Ganzzahlen: 0 bis 18 446 744 073 709 551 615 Mit Vorzeichen: -9 223 372 036 854 775 808 bis +9 223 372 036 854 775 807 |
FLOAT | 4 Bytes | Fließkommazahlen Ganzzahlen: 0 und 1,175494351^38 bis 3,402823466^38 Mit Vorzeichen: -3,402823466^38 bis +1,175494351^38 |
DOUBLE | 8 Bytes | Fließkommazahlen Ganzzahlen: 0 und 2,225^-308 bis 1,798^308 Mit Vorzeichen: -1,798^308 bis +2,225^-308 |
DATE | 3 Bytes | Datumsbereich: von 01.01.1000 bis 31.12.9999 |
DATETIME | 8 Bytes | Datumsbereich: von 01.01.1000 - 00:00:00 bis 31.12.9999 - 23:59:59 |
TIMESTAMP | 4 Bytes | Wertebereich: von 01.01.1970 bis 2037 |
VARCHAR | Stringlänge + 1 Byte | Zeichenkette mit einer Lä... |