quakenet:#php Tutorial

Author: Progman, zuletzt bearbeitet von progman @ 2005/03/13 16:11:12

Bitte beachten Sie, dass die Tutorialkapitel zusammenhängen. Wenn sie direkt auf ein Kapitel verlinkt wurden müssen Sie gegebenenfalls die vorherigen Kapitel auch lesen. Achten Sie beim lesen darauf, dass Sie kein Kapitel überspringen.

Aufbau von MySQL

  1. Grundlayout von MySQL
  2. In die MySQL-Datenbank einloggen
  3. MySQL in PHP
  4. phpMyAdmin

1. Grundlayout von MySQL

Wir haben jetzt gelernt, wie man Informationen von einem Formular oder von der URL in ein Script bringt. Wir können diese Informationen ausgeben, bearbeiten, verarbeiten und darauf reagieren. Doch was wir nicht wissen ist, wie und wo man diese Informationen abspeichert. Es bringt ja nix, wenn wir die Daten ausgeben, wenn sie sofort wieder verloren sind. Deshalb müssen wir eine Möglichkeit finden, diese Daten zu speichern. Dies geht in einer einfachen Textdatei. Eleganter ist es aber, diese Daten in eine Datenbank zu speichern. Da die meisten Provider zusätzlich zu PHP eine MySQL Datenbank anbieten, werde ich auch die Benutzung von MySQL-Datenbank durchnehmen. In anderen Datenbanksystemen ist die Funktionsweise und die Sprache ähnlich. Aber es geht ja nicht nur darum die Sprache zu lernen, sondern das Konzept der relationalen Datenbank zu verstehen, dass eine Datenbank keine reine Textdatei ist, sondern eine Möglichkeit ist Daten elegant abzuspeichern und diese auch wieder einfach auszulesen.

Eine MySQL-Datenbank besteht einmal aus einer gewissen Anzahl von Datenbanken. Die kann der Endbenutzer nicht verwalten, dies macht der Admin des Servers. Auf einem Server, wo mehrere Homepages liegen, kann der Admin mehrere Datenbank erstellen. Jeder User hat dann seine eigene Datenbank in der er dann arbeiten kann. Der User erfährt dann auch, z.B. per Email oder im Adminbereich, welche Datenbank er benutzen soll. Der momentane Aufbau einer Datenbank sieht dann so aus.

Datenbanken in MySQL
Abb.: Datenbanken in MySQL

In jeder Datenbank kann dann der User rumhantieren wie er lustig ist. Zu jeder Datenbank gehören Tabellen. Erst in den Tabellen, die am Anfang leer sind, können dann die Informationen gespeichert werden. Jede Tabelle hat einen Namen, z.b. News oder Clanwars. Und jede Tabelle besitzt Spalten. Man muss sich das dann wie in einer Tabellenkalkulation wie Excel vorstellen. Nur heißen die Spalten in MySQL nicht A, B, C sondern haben bestimmte Namen. Eine Tabelle hat auch nicht unendlich Spalten, sondern nur ganz bestimmte vorher festgelegte Spalten. Die Spalten in einer Tabelle News könnten Inhalt, Titel, Datum und Author heißen. Dies könnte man grafisch so darstellen.

Datenbank mit Tabellen
Abb.: Datenbank mit Tabellen

In einer Tabelle können dann die Daten gespeichert werden. Diese werden dann in Form von Datensätzen gespeichert. Jeder Datensatz steht dann für einen Eintrag in einer Tabelle. In Excel würde da dann eine Reihe sein. Dies sieht dann so aus.

Tabelle mit einem Eintrag
Abb.: Tabelle mit einem Eintrag

Eine Tabelle mit nur einem Datensatz macht wenig sinn. In einer Tabelle können mehrere Datensätze gespeichert werden. Dies ist ja auch Logisch. Denn wir haben ja nicht nur eine News, sondern mehrere News, nicht nur ein gespielten Clanwar, sondern mehrere gespielten Clanwars. In Excel würde man jetzt Reihe für Reihe füllen. Die Anzahl der Datensätze in einer Tabelle ist eigentlich Unbegrenzt. Die einzige Grenze ist der Festplattenplatz und ggf. Admineinstellungen an der MySQL-Datenbank. Mehrere Datensätze in einer Tabelle kann man sich dann so vorstellen.

Mehrere Datensätze in einer Tabelle
Abb.: Mehrere Datensätze in einer Tabelle

2. In die MySQL-Datenbank einloggen

Um mit einer MySQL-Datenbank zu arbeiten muss man sich in dieser einloggen. Man will ja nicht das jeder User auf dem Server zugang zu den Datenbanken und Tabellen hat. Logischerweise hat der Admin die meisten Rechte und kann überall rumschnüffeln. Die User haben nur Zugang zu ihren eigenen Datenbanken, können aber in dieser alles machen was sie wollen. In den anderen Datenbanken können sie nicht einsehen.

3. MySQL in PHP

In PHP gibt es eine ganze Menge von MySQL-Funktionen. So viele, dass es sogar eine eigene Manual-Rubrik MySQL Functions gibt. In PHP werden dabei 4 wichtige Daten über die MySQL-Datenbank benötigt.

Da all diese Daten sich im Laufe des Scripts nicht verändern, sollte man diese Daten in Konstanten schreiben. Somit sind sie auch in jeder Funktion vorhanden (im Gegensatz zu Variablen). Beispielnamen sind MYSQL_HOST, MYSQL_USER, MYSQL_PASS und MYSQL_DATABASE.

<?php
    
// config.php
    
error_reporting(E_ALL);

    
define('MYSQL_HOST',     'localhost');
    
define('MYSQL_USER',     'progman');
    
define('MYSQL_PASS',     'foobar');
    
define('MYSQL_DATABASE', 'db24543253');
?>

Bei der Wahl der Konstanten muss man aufpassen, dass man keine existierenden Konstanten benutzt. Diese Konstanten definieren wir in der inc/config.php bzw. in der inc/konstanten.php. Spätere Kapitel beziehen sich auf diese Konstanten.

Die Login-Daten kriegt man vom Admin des Servers via Email oder findet man irgendwo im Kundenlogin. Aussuchen kann man sich die Daten eher selten, es sei denn man ist der Besitzer der MySQL-Datenbank.

4. phpMyAdmin

Es gibt ein PHP-Projekt genannt phpMyAdmin. Mit diesem Projekt, welches man es auf dem Webserver installiert, kann man seine Datenbank recht gut verwalten. Man kann direkt MySQL-Querys eingeben und Tabellen mit hilfe von Eingabemasken bearbeiten/erstellen/löschen.

Üblich ist es phpMyAdmin in einem Unterverzeichnis phpmyadmin/ zu speichern, damit man mit http://www.url.de/phpmyadmin/ auf die Datenbank zugreifen kann. Aber vergessen sie bloß nicht ein HTTP-AUTH-Schutz z.B. mittels einer .htaccess Datei, denn sonst hat jeder der http://www.url.de/phpmyadmin/ vollen Zugriff auf die Datenbank. Dies war bei ProSieben der Fall. Siehe heise.de Newsbeitrag ProSieben-Benutzerdaten standen offen.

Fragen zum aktuellen Thema

  1. Woraus besteht eine MySQL-Datenbank?
  2. Welche Daten brauchen sie für ihr PHP Script?
Woraus besteht eine MySQL-Datenbank?

Eine MySQL-Datenbank besteht aus Datenbanken, Tabellen, Datensätzen und einem Login-System.

Welche Daten brauchen sie für ihr PHP Script?

Für ihr PHP Script brauchen sie die Angaben Host, Username, Password und Database / Datenbank. Diese Daten sollten sie dann in Konstanten speichern.

Nach oben