Erste Schritte

Um ein paar Datenbankoperationen ausführen zu können, bedienen wir uns an eine .sql-Datei die wir einfach in phpMyAdmin importieren können.


Was ist phpMyAdmin?

phpMyAdmin ist eine Webanwendung, womit MySQL-Datenbanken administriert werden können. Über die Benutzeroberfläche können Datenbanken erstellt, bearbeitet oder auch gelöscht werden, ohne SQL-Anweisungen zu schreiben.

Download der SQL-Datei

Diese .sql-Datei kann bequem über die Benutzeroberfläche von phpMyAdmin importiert werden.


SQL-Datei Importieren

Als Erstes benötigen wir eine Datenbank, die wir hier "training" nennen. Wir klicken auf der linken Seite auf dem Listenelement "Neu", um eine neue Datenbank zu erstellen.

Import-Reiter in phpMyAdmin

Im Eingabefeld benennen wir die Datenbank und wählen die gewünschte Zeichencodierung aus.

Import-Reiter in phpMyAdmin

Info

Als Zeichencodierung verwenden wir utf8mb4_general_ci

Diese Zeichencodierung ist nicht nur weit verbreitet, sondern unterstützt alle deutschen Umlaute wie Ä, Ö, Ü, ß und diverse Sonderzeichen, zudem ist sie übersichtlicher bei sortierten Ausgaben:

Bei UTF8_bin: Alt, Jung, Älter

Bei UTF8_general_ci: Alt, Älter, Jung

Nach einem Klick auf Anlegen ist die neue Datenbank auf der linken Seite der Benutzeroberfläche mit aufgelistet.

Datenbankauflistung

Zum Importieren der .sql-Datei müssen wir die Datenbank anwählen, in der wir Datensätze importieren wollen. Dann bewegen wir uns auf der Benutzeroberfläche auf den Reiter Importieren (grün eingekreist).

Import-Reiter in phpMyAdmin

Im neuen Fenster erscheint ein Textfeld mit dem Button "Datei auswählen", den wir anklicken, um die .sql-Datei auszuwählen.

Datei auswählen Button im Textfeld

Nun wird die "training.sql" Datei ausgewählt und mit einem Klick auf "Öffnen" für die Webanwendung freigegeben.

Datei Öffnen und importieren

Mit einem Klick unten rechts auf "OK" wird der Import von phpMyAdmin durchgeführt. Die Informationen stehen nun in der Datenbank bereit.


Verbindung zwischen Programm und Datenbank

Wir werden die Benutzeroberfläche von phpMyAdmin nicht zwingend brauchen, allerdings kann es nicht schaden, auf der Oberfläche zu prüfen, ob der Code sauber arbeitet. Eine Einführung in phpMyAdmin wird es hier nicht geben, weil die Benutzeroberfläche soweit selbsterklärend ist. Als Anwendungsentwickler ist für uns die Verbindung zwischen Programm und der Datenbank sowieso viel interessanter, weil wir ja nicht ständig über Benutzeroberflächen die Informationen anpassen wollen, sondern das Programm für uns arbeiten lassen möchten.

Verbindungsaufbau

Um eine Verbindung zur Datenbank herzustellen, wird im Projektordner die Datei "datenbank.php" erstellt.

In der Datei werden wir mit PHP den Verbindungsaufbau durchführen.

Info

PHP und MySQL werden häufig gemeinsam verwendet.

Obwohl es sich hierbei um 2 unabhängige Systeme handelt. PHP kann auch mit anderen Datenbanksystemen wie SQLite oder Microsoft SQL Server arbeiten. Genauso unabhängig ist auch MySQL, es kann ohne Weiteres von anderen Programmiersprachen wie Java oder Python verwendet werden.

Für den Verbindungsaufbau wird die Funktion "mysqli_connect()" verwendet. Diese Funktion erwartet bis zu 6 Parameter:

  • Servername
  • Benutzername
  • Passwort
  • Name der Datenbank
  • Portnummer
  • Name des verwendeten Sockets

Für unsere lokale Verwendung reichen uns jedoch die ersten 4 Parameter.

Verbindung zur Datenbank aufbauen

if ($db = mysqli_connect("localhost", "root", "", "training")) {
 echo "Verbindung wurde aufgebaut <br>";
} else {
   exit ("Verbindungsfehler: " . mysqli_connect_error());
}
mysqli_close($db);

In der Variable "$db" speichern wir die Verbindungsdaten zur Datenbank. Als Servername verwenden wir in der lokalen Entwicklung den Server "localhost". Der Benutzername bei MySQL ist Standardgemäß "root", kann aber selbstverständlich geändert werden. Wenn kein Passwort zum Benutzer vergeben wurde, dann übergeben wir eine leere Zeichenkette als dritten Parameter. Der Name der Datenbank ("training") wurde bereits in phpMyAdmin vergeben. In Produktivsystemen sind die Verwendung von Portnummer und der Name des Sockets noch mit zu übergeben, falls erforderlich. Alle Parameter sind nur optional und können über die Datei "php.ini" konfiguriert werden.

Sollte ein Verbindungsaufbau erfolgt sein, wird auch die entsprechende Meldung dazu ausgegeben. Bei einem Verbindungsfehler bekommen wir eine Fehlermeldung ausgegeben. Der Funktion "mysqli_close()" übergeben wir die Datenbank, bei der die Verbindung wieder geschlossen werden soll, in diesem Fall "$db".


Daten abfragen

Nun wollen wir endlich die Daten aus der Datenbank auslesen. Dazu verwenden wir die Funktion "query()" und übergeben Ihr die Datenbankanweisung. In der Datenbankanweisung steht:

  • SELECT (Auswählen)
  • * (Alle Spalten der Tabelle)
  • FROM (Von der folgenden Tabelle)
  • person (Name der Tabelle)

Mit "print_r" können wir uns das Ergebnis der Anfrage ausgeben lassen.

Daten abfragen

if ($db = mysqli_connect("localhost", "root", "", "training")) {
 echo "Verbindung wurde aufgebaut <br>";
} else {
   exit ("Verbindungsfehler: " . mysqli_connect_error());
}
$ausgabe = $db->query("SELECT * FROM person");
print_r($ausgabe);
mysqli_close($db);

Das Ergebnis ist ein Objekt mit Informationen zum Abfrageergebnis, aber leider ohne die Informationen, die wir haben wollten. Um die gewünschten Informationen ausgeben zu lassen, verwenden wir mehrere Funktionen. Als Erstes packen wir die Datenbankanweisung, also die Abfrage selber in eine eigene Variable. Danach gehen wir in die Fallunterscheidung mit "if". In der Variable "$ausgabe" speichern wir den erhaltenen Ergebnis-Handler von der Funktion "mysqli_query()". Dann erzeugen wir eine Liste. Mit der Funktion "mysqli_fetch_assoc()" können wir uns eine Ergebnisliste als assoziatives Array ausgeben lassen. Dieses Array iterieren wir dann mit der "while"-Schleife, solange bis von der Funktion "mysqli_fetch_assoc" keine Daten mehr kommen. Die erzeugten Datensätze werden mit "htmlspecialchars" noch in ein Format gebracht, womit wir arbeiten können. Nach der Schleife wird die Liste geschlossen und die Verbindung zur Datenbank kann beendet werden.

Daten abfragen

if ($db = mysqli_connect("localhost", "root", "", "training")) {
 echo "Verbindung wurde aufgebaut <br>";
} else {
   exit ("Verbindungsfehler: " . mysqli_connect_error());
}
$abfrage = "SELECT vorname, nachname FROM person";
 if ($ausgabe = mysqli_query($db, $abfrage)) {
  echo "<ul>";
   while ($zeile = mysqli_fetch_assoc($ausgabe)) {
    echo "<li>" . htmlspecialchars($zeile["vorname"]) . " " . htmlspecialchars($zeile["nachname"]) . "</li>";
   }
   echo "</ul>";
 }
mysqli_close($db);

Weiter mit Abfrage (SELECT)