Derzeit online: ca. 81 User  
Spenden via PayPal PHP für dich ist auch als Buch erhältlich - im handlichen Format, zum Nachschlagen, Mitnehmen oder gemütlichen nebenbei Lesen. Mit noch mehr Informationen, zusätzlichen Beispielen und Übungsaufgaben.
Jetzt in der aktualisierten Version bei Amazon oder BoD bestellen!


MySQL

Eine Datenbank...

... mit vielen Tabellen.

Eigentlich arbeiten wir nicht direkt mit Datenbanken, sondern mit den Tabellen, die sich darin befinden. So kann eine Datenbank aus vielen Tabellen bestehen und die Datenbank ist eigentlich nicht mehr als ein Ordner, in dem sich alle diese Tabellen befinden.

In diesen Tabellen finden wir die Daten, auf die das jeweilige Programm zugreifen kann, um sie für den Anwender übersichtlich darzustellen. Du kennst das vielleicht auch aus anderen Programmen. So arbeitet zum Beispiel MS Project mit den Daten einer Datenbank - daneben gibt es natürlich auch die eine oder andere MS Project Alternative. Gemeinsam ist ihnen die Datenbankanbindung; häufig, so wie bei uns, in Form von MySQL. Auch in anderen Unternehmensbereichen werden gerne (und sinnvoller Weise) Datenbanken eingesetzt.

Wir fangen aber erst mal ganz klein an und lernen, wie man eine Datenbank und Tabellen anlegt. Die Datenbank wird üblicherweise direkt vom Hoster angelegt oder wir können sie über das Kundenmenü erstellen. Im Zweifel schaue dir bitte die Doku deines Hosters an. Dort findest du auch, wie du Zugriff auf phpMyAdmin erhältst.

In phpMyAdmin sehen wir auf der linken Seite alle unsere Datenbanken. Wenn wir nur eine haben, sehen wir auch gleich die dazugehörigen Tabellen, sonst müssen wir zuerst die Datenbank aussuchen, mit der wir arbeiten wollen. Da in unserer Datenbank noch keinerlei Tabellen sind, legen wir jetzt eine an.

Dabei können wir entweder mit SQL-Anweisungen arbeiten oder eine bequeme Benutzeroberfläche nutzen. Der Weg über die SQL-Anweisung ist der schnellere - jedoch muss man dafür auch Ahnung von SQL haben :-) Wir machen es also über die Benutzeroberfläche.

Wir wählen dafür zuerst unsere Datenbank aus indem wir links darauf klicken oder sie je nach Version aus einem Dropdown-Feld auswählen. Ganz unten auf der Seite finden wir jetzt Neue Tabelle in Datenbank DB-NAME erstellen: und vergeben einen Tabellennamen. Außerdem müssen wir festlegen, wieviele Spalten wir brauchen.

Aus dem Grund ist es sinnvoll, sich zunächst zu überlegen, was man in der Tabelle braucht.

Es ist vernünftig in jeder Tabelle eine so genannte ID zu verwenden, die jeden Datensatz eindeutig identifiziert. Alle anderen Felder richten sich nach der Verwendung der Datenbank.

Ich werde jetzt eine Tabelle verwenden, die den Sinn einer Linkverwaltung hat. Das heißt, wir speichern darin die Internetadressen, den Namen des Links, den Namen des Besitzers der HP, die Adresse zu einem Banner (falls wir unterschiedlich große Banner haben können wir auch noch Breite und Höhe darin abspeichern - das machen wir jetzt aber nicht) und eine Seitenbeschreibung. Später können wir diese Daten über unterschiedliche Abfragetypen wieder auslesen. Wir legen also zunächst insgesamt 6 Felder in unserer Tabelle an.

Dafür schreiben wir in das erste Feld, das den Namen der Tabelle bestimmt links und in das zweite Feld, das die Anzahl der Spalten angibt 6 hinein und klicken danach auf OK.

Jetzt landen wir bei einer weiteren Benutzeroberfläche mit zahlreichen Reihen und Spalten. Jede Reihe entspricht einem Feld und die Spalten bieten uns unterschiedliche Möglichkeiten.

In die erste Spalte gehört der Feldname eingetragen, danach folgt der Typ (hier wird z. B. festgelegt ob es sich um ein Feld mit Zahlen oder mit Text handelt). In die dritte Spalte wird die maximale Länge des Feldinhaltes geschrieben (ist jedoch nicht bei allen Felddatentypen möglich). Die nächste Spalte kannst du erstmal ignorieren, phpMyAdmin verwendet dort Standardwerte, wenn du nichts angibst und mit denen fährst du meistens richtig. Danach folgen noch Attribute, die Bestimmung ob das Feld leer sein darf, Standardwerte, Extras und zum Schluss die Festlegung ob es sich um einen Schlüssel, ein Indexfeld und/oder ein einmaliges Feld handelt. Außerdem ist es möglich, einen Haken bei Volltext zu setzen oder einen Kommentar dazu zu schreiben.

Puh, was heißen denn jetzt diese ganzen Fachbegriffe?

Nun, ein Schlüsselfeld dient dazu, einen Datensatz eindeutig zu identifzieren. Daher ist es automatisch auch ein "einmaliges Feld", das heißt, der Feldinhalt darf kein zweites Mal in der selben Spalte vorkommen (das sind meistens IDs - also jede ID nur einmal und nicht doppelt vergeben).

Wir verwenden jetzt also für unsere ID folgende Werte:

id, int, 5, leer lassen, unsigned, not null, leer lassen, auto_increment, Haken bei Primärschlüssel setzen

Durch int wird das Feld als Zahlenfeld festgelegt (int steht für Integer - einen speziellen Zahlentyp) und auto_increment legt fest, dass das Feld automatisch um eines erhöht wird bei jedem neuen Datensatz. Der Haken bei Primärschlüssel sorgt dafür, dass unsere id als Schlüssel verwendet wird.

Für die anderen verwenden wir:

url, varchar, 100, leer lassen, not null, alles andere leer lassen
urlname, varchar, 250, leer lassen, not null, alles andere leer lassen
name, varchar, 100, leer lassen, not null, alles andere leer lassen
banner, varchar, 250, leer lassen, not null, alles andere leer lassen
beschreibung, text, leer lassen, leer lassen, not null, alles andere leer lassen

varchar Felder sind Textfelder mit einer bestimmten Größe und text sind Textfelder ohne bestimmte Größe (falls besonders viel Inhalt erforderlich ist, ist auch longtext möglich.

So sieht das dann aus: Popup

Unsere Eingaben bestätigen wir anschließend mit Speichern und bekommen dann die Meldung, dass die Tabelle angelegt wurde (inklusive des dazugehörigen SQL-Statements).

Damit haben wir jetzt die Tabelle angelegt und können sie als nächstes füllen.

Dieses Kapitel behandelt einen ersten Einstieg in die Arbeit mit mySQL-Datenbanken. Es dient dem grundsätzlichen Verständnis der Kommunikation zwischen PHP und der Datenbank. Für den produktiven Einsatz ist es sinnvoll, sich detailierter mit diesem Thema zu beschäftigen und besonderen Augenmerk auf Sicherheitsaspekte zu legen.

Autor: Claudia Unkelbach

=> Weiter
© 2001 - 2017 Claudia Unkelbach
Gießener Straße 75, 35396 Gießen