PHP & MySQL

Unsere Formulardaten haben wir zunächst gebündelt in einer E-Mail an den Empfänger mittels PHP automatisch versendet. Nachdem unser Formular nun von vielen Besuchern ausgefüllt worden ist, reicht es nicht mehr aus, die Daten in eine E-Mail zu packen. Es wird ein Mittel benötigt, dass die Daten lange speichert und jederzeit abgerufen werden kann. Eine Lösung ist, dass PHP-Skript mit einer sogenannten SQL Datenbank zu verbinden.


Grundlagen einer SQL-Datenbank

SQL ist eine Datenbanksprache zur Definition von Datenstrukturen in relationalen Datenbanken sowie zum Bearbeiten und Abfragen von darauf basierenden Datenbeständen. Die Sprache basiert auf der relationalen Algebra, ihre Syntax ist relativ einfach aufgebaut und semantisch an die englische Umgangssprache angelehnt. Mit Hilfe von SQL kann man eine Datenbank erstellen, die die Daten geordnet speichert und jederzeit genau die Informationen herauszieht, die benötigt werden.

Die Datenbanken sind in Tabellen gegliedert, die Informationen als Zeilen und Spalten zusammengehörig speichert. Der SQL-Datenbankserver ist ein spezielles Programm, welches die Datenbanken verwaltet. Die Kommunikation mit dem Datenbankserver erfolgt mittels SQL. Üblicherweise liegt der Datenbankserver auf dem gleichen Rechner wie der Webserver:

Speicherung von Daten

Ein SQL-Datenbankserver kann mehrere Datenbanken enthalten:

MySQL-Datenbankenserver

Für die Benutzung einer SQL-Datenbank benötige ich MySQL-Werkzeuge, wie z.B. das mysql-Clientprogramm und phpMyAdmin. Diese beiden Werkzeuge können SQL-Befehle zur Erstellung von Datenbanken und Tabellen, sowie zum Einfügen und Auswählen von Daten ausführen. MySQL wird standardmäßig von vielen Webbrowsern installiert. Der mysql-Client ist Teil jeder MySQL-Installation.


Erstellen einer MySQL-Datenbank

Für das Erstellen einer Datenbank müssen wir unser Terminal öffnen und folgende Eingaben tätigen:

Mysql -u Ihr_Benutzername -p IhrPasswort

MySQL meldet sich und präsentiert die MySQL-Eingabeaufforderung mysql>. Daraufhin erstellen wir eine Datenbank mit:

CREATE DATABASE formulardatenbank;

Die Antwort des MySQL-Servers, bestätigt nun das der Befehl erfolgreich war (Query OK). Mit USE formulardatenbank; sagen wir, dass die angesprochene Datenbank verwendet werden soll. Der SQL-Code der eine Tabelle erstellt ist ein wenig komplexer:

Mysql> CREATE TABLE formular_datenbank (

            Vorname varchar (30),

            nachname varchar (30),

            email varchar (50)

);

Mit phpMyAdmin können wir die Datenbanken und Tabellen auch über grafische Schnittstellen erstellen. Das SQL-Register in phpMyAdmin bietet die Möglichkeit, SQL-Anweisungen genauso anzugeben wie auf der Konsole.

Um die Daten in die Tabelle hinzuzufügen benötigt man die INSERT-Anweisung:

INSERT INTO formular_datenbank (spaltenname 1, spaltenname 2, …) VALUES (´wert 1´, ´wert2´, ..)

Mittels der INSERT Anweisung kann ich die Spaltennamen bestimmen, sowie die entsprechenden Werte hinzufügen.

Mittels der SELECT-Anweisung können wir uns einen Auszug einer Tabelle in einer Datenbank verschaffen:

SELECT Spalten FROM formular_datenbank

Über FROM erfährt SELECT aus welcher Tabelle die Daten ausgewählt werden. Nach dem SELECT kann eine Liste der gewünschten Spalten angegeben werden (durch ein Komma getrennt), von denen wir die Daten sehen möchten. Möchten wir alle Spalten und alle Daten auslesen, können wir anstelle der Spalten ein * einfügen. Ebenfalls haben wir mit der SELECT-Anweisung die Möglichkeit die Spalten zu filtern indem wir hinter FROM formular_datenbank WHERE Name der Spalte = ´Inhalt der Spalte´ schreiben.

Spätestens nach dem Auslesen der SELECT-Anweisung sehen wir, dass wir nur eine Zeile in unserer Datenbank haben. Für jedes Einfügen in eine MySQL-Datenbank ist eine INSERT-Anweisung erforderlich. Um dem Mühseligem Einfügen der Zeilen entgegenzutreten, können wir die Automatisierung von SQL mithilfe von PHP ausführen.

  • Ohne PHP ist eine manuelle INSERT-Anweisung erforderlich, um die Berichte in der Datenbank zu speichern.
  • Mit PHP kümmert sich ein Skript automatisch darum, eine INSERT-Anweisung auszuführen, wenn ein Formular übermittelt wird.

Nachdem nun von einem Benutzer das Formular entsprechend ausgefüllt worden ist, stellt das Skript eine Verbindung mit der MySQL-Datenbank her und fügt die Daten aus dem Formularübermittlungen mit INSERT-Anweisung ein. Ein zusätzliches Skript index.php ruft die Daten aus der Tabelle formular_datenbank auf, damit sie formatiert und dem Inhaber präsentiert werden können.


Eine Verbindung zwischen PHP und MySQL aufbauen

Verbindungsaufbau zwischen PHP und MySQL

Verbindung zur Datenbank herstellen:

$db = mysqli_conecct (´IP-Adresse´, ´Datenbank-Benutzername´, ´Datenbank-Passwort´, ´Name der Datenbank´) or die (´Fehler beim Verbinden mit dem MySQL-Server.´);

Die INSERT-Abfrage im PHP-Code muss als String aufgebaut werden:

$sql = “INSERT INTO formular_datenbank (vorname, nachname, email) “ .

“VALUES (´Kathi´, ´Brand´, ´katharina.brand@gmail.com`) “;

INSERT-Abfrage auf der MySQL-Datenbank ausführen:

$ergebnis = mysqli_query ($db, $sql); or die (´Fehler bei Datenbankabfrage.`);


PHP-Funktionen

Die Kommunikation zwischen dem MySQL Datenbankserver und der Datenbank gibt es eine Reihe von wichtigen Funktionen:

  • Mysqli_connect() : Stellt unter Angabe der Verbindungsdaten (Serverort, Benutzername, Passwort und einen Datenbanknamen) eine Verbindung mit einer MySQL-Datenbank her.
  • Mysqli_query(Datenbankverbindung. Abfrage) : Führt eine SQL-Abfrage auf einer MySQL-Datenbank durch, dafür benötigt sie jedoch zwei Informationen (Datenbankverbindung hergestellt und auszuführende SQL-Abfrage, die wir in einem String gespeichert haben)
  • Mysqli_close(Datenbankverbindung) : Schließt eine Verbindung zu einer MySQL-Datenbank.
  • Die () : bricht die Verarbeitung eines PHP-Skriptes ab und liefert eine Meldung zu dem Code, der dafür verantwortlich ist

Schau doch gerne hier vorbei, um mehr über Datenbanken und SQL zu erfahren.

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten