Anzeige
Tutorialbeschreibung

PHP - Teil 21 - PHP & MySQL (1)

PHP - Teil 21 - PHP & MySQL (1)

PHP und MySQL sind nicht nur aufgrund ihrer kostenlosen Verfügbarkeit weit verbreitet. Auch die relativ leichte Bedienbarkeit von MySQL-Datenbanken und die zahlreichen MySQL-Funktionen von PHP machen dieses Gespann zu dem am häufigsten eingesetzten. In diesem und den nächsten Video-Trainings wird gezeigt, wie ihr PHP und MySQL am effektivsten verwenden könnt.

... übrigens findest du die komplette Serie hier: PHP-Workshop-DVD - Basics & Tricks - Schnapp sie dir in unserem Shop oder in der Kreativ-Flatrate!


Bevor in die PHP-MySQL-Welt eingestiegen wird, zunächst ein allgemeiner Hinweis: Damit ihr effektiv mit Datenbanken arbeiten könnt, solltet ihr zumindest über grundlegende Kenntnisse in SQL verfügen. Die Structured Query Language ist die Sprache für Zugriffe und die Bearbeitung von Daten. Die Beschreibung dieser Sprache würde an dieser Stelle allerdings – da es hier ausschließlich um PHP geht – zu weit führen.

Daher sei euch das MySQL-Datenbankhandbuch, das auf der Seite http://www.little-idiot.de/mysql/mysql.html kostenlos gelesen werden kann, wärmstens ans Herz gelegt. Dort werden SQL-Grundlagen beschrieben. (Auch wenn es dort vorwiegend um MySQL geht, lernt ihr dort doch auch einiges über die SQL-Syntax).

Bilder



 
In den folgenden Tutorials wird für die Arbeit mit MySQL auf das Administrations-Tool phpMyAdmin zurückgegriffen. Bei XAMPP und anderen vergleichbaren Paketen ist phpMy-Admin bereits standardmäßig enthalten. Bei XAMPP könnt ihr phpMyAdmin folgendermaßen aufrufen:

http://localhost/phpmyadmin

Das führt - wenn der Server gestartet wurde - zu folgender Bildschirmansicht:

Bilder



 
Hier könnt ihr eine neue Datenbank anlegen oder bestehende bearbeiten. Auch im Zusammenhang mit phpMyAdmin darf an dieser Stelle nicht der Hinweis fehlen, dass phpMyAdmin ein sehr komplexes Werkzeug ist. Wollte ich das hier ausführlich beschreiben, würde das den Rahmen sprengen. Ich verweise daher – und das soll nun, ob ihr es glaubt oder nicht, keine Schleichwerbung sein – auf das von mir verfasste Buch MySQL. Dort wird die Bedienung von MySQL anhand von phpMyAdmin gezeigt. Ansonsten gibt es unter http://www.phpmyadmin.net/documentation/ aber auch die offizielle (englischsprachige) Dokumentation.


Eine Datenbank anlegen

Um die folgenden Beispiele nachvollziehen zu können, solltet ihr euch eine Datenbank anlegen. Ruft dazu – wenn ihr mit diesem Tool arbeitet und XAMPP verwendet – bei gestartetem lokalem Server die Seite http://localhost/phpmyadmin auf.

Der eigentliche Datenbankname wird in das Feld Neue Datenbank anlegen eingetragen.

Bilder



 
Interessant ist in diesem Zusammenhang die Frage, ob es Konventionen hinsichtlich der Schreibweise von Datenbanknamen gibt. Prinzipiell sollten die Namen weder Sonder- noch Leerzeichen enthalten. (Ausnahmen bilden Binde- und Unterstrich). Den meisten Klärungsbedarf gibt es aber zweifellos bei der Frage, ob zwischen Groß- und Kleinschreibung unterschieden wird. Ist also MEINWORDPRESS das Gleiche wie meinwordpress? Dazu muss man wissen, dass bei MySQL eine Datenbank einem Verzeichnis im Dateisystem entspricht.

Das bedeutet im Umkehrschluss, dass die Regeln bezüglich der Groß- und Kleinschreibung von Datenbanknamen denen des verwendeten Betriebssystems entsprechen. Bei Windows wird nicht zwischen Groß- und Kleinschreibung unterschieden. Dort ist MEINWORDPRESS tatsächlich das Gleiche wie meinwordpress. Anders sieht es aber bei den meisten Unix-Varianten aus: Hier findet eine entsprechende Unterscheidung statt.

Neben dem Name-Feld gibt es ein Auswahlfeld, in dem standardmäßig der Wert Kollation eingestellt ist.

Bilder



 
Direkt darunter ist das Feld Zeichensatz/Kollation der MySQL-Verbindung zu sehen. Über beide Felder stellt man den Zeichensatz oder die Kollation ein. Zunächst stellt sich die Frage, was es mit der Kollation auf sich hat. Darüber wird die Sortierreihenfolge bestimmt. Wichtig ist die Angabe eines Zeichensatzes vor allem, wenn Sonderzeichen verwendet werden, da hier unterschiedliche Regeln für die einzelnen Sprachen gelten. Für deutsche Zeichenfolgen kann man latin1_german1_ci (a vor ä, o vor ö etc. = DIN-1) oder latin1_german2_ci (ä vor a etc. = DIN-2) verwenden.

Parallel dazu könnt ihr auch UTF-8, die am weitesten verbreitete Kodierung für Unicode-Zeichen, angeben. Das bietet sich gerade auch im Zusammenhang mit Content-Managementsystemen an. So kann man dank UTF-8 beispielsweise innerhalb eines deutschsprachigen Textes ein französisches Zitat einfügen, ohne die französischen Zeichen dabei durch Entitäten auszeichnen zu müssen. UTF-8 hat den Vorteil, dass in diesem Zeichensatz die wichtigsten Sprachzeichen der Welt enthalten sind.

Der Zeichensatz für die MySQL-Verbindung legt fest, welcher Datensatz für die Kommunikation zwischen Client und MySQL-Server verwendet werden soll. Hier gelten die gleichen Anmerkungen wie zuvor beschrieben. Wählt am besten latin1_german1_ci, latin1_german2_ci oder eben UTF-8.

Mit Anlegen wird die Datenbank erzeugt:

Bilder



 
Wird diese Meldung angezeigt, konnte die Datenbank angelegt werden. Es kann aber auch zu einer Fehlermeldung kommen:

#1007 - Can't create database 'psd'; database exists

In diesem Fall wurde versucht, eine Datenbank anzulegen, die unter dem gleichen Namen bereits auf dem System vorhanden ist. Jetzt gibt es zwei Möglichkeiten: Ihr verwendet für die neue Datenbank einen anderen Namen oder löscht die alte Datenbank und legt anschließend die neue an.


Eine Verbindung zur Datenbank herstellen

Um mit PHP auf MySQL-Datenbanken zugreifen zu können, benötigt ihr die IP des Servers, den Benutzernamen, das Passwort und den Namen der Datenbank. Für die Testumgebung, die zumeist lokal aufgebaut wird, gibt man normalerweise den Servernamen localhost an.

Einige Worte zur Sicherheit: Passwort und Benutzername sollte stets vor nicht autorisierten Personen geheim gehalten werden. Als grundlegendster Schutz sollte die Auslagerung der Verbindungsdaten betrachtet werden. In den folgenden Beispielen wird jeweils über den Befehl include() die Datei config.php eingebunden. In dieser Datei sind Servername, Benutzername, Passwort und Datenbankname gespeichert. Zusätzlich wird mittels der Datei config.php versucht, eine Verbindung zur Datenbank herzustellen. Nachfolgend ist der Inhalt dieser Datei beschrieben. (Wobei hier von der XAMPP-Standardeinstellung ausgegangen wird, bei der der Benutzername root ist und das Passwort nicht gesetzt wurde).

<?php
 $server = "localhost";
 $user = "root";
 $passwort = "";
 $datenbank = "psd";
 $verbindung = mysql_connect($server, $user, $passwort) or die ("Es 
 konnte keine Verbindung zum Server hergestellt werden");
 mysql_select_db($datenbank) or die ("Die Datenbank existiert nicht");
?>

 
Über mysql_connect() wird eine Verbindung zum MySQL-Server geöffnet. Als Parameter werden der Servername, der Benutzername sowie das Passwort erwartet. Diese Werte wurden in den entsprechenden Variablen gespeichert. Für den Fall, dass keine Verbindung hergestellt wurde, kann neben den üblichen Fehlermeldungen auch eine eigene definiert werden. Dazu wird die Anweisung OR DIE mit der in Klammern notierten Fehlermeldung verwendet. Speichert die Datei unter dem Namen config.php ab und ruft diese im Browser auf. Für den Fall, dass ein leeres Browserfenster angezeigt wird, konnte die Verbindung hergestellt werden.

Bilder



 
Ändert zu Demonstrationszwecken den Wert der $datenbank-Variablen auf eine nicht existierende Datenbank und aktualisiert das Browserfenster.

Bilder



 

Konstanten nutzen

Da es sich bei den zur Verbindung für die Datenbank notwendigen Angaben wie Benutzername und Passwort um Konstanten handelt, könnt ihr auch eine Klasse definieren, die das Schlüsselwort const verwendet.

<?php 
class Config { 
const host = 'localhost'; 
const user = 'root';
const pass = ''; 
} 
mysql_connect(Config::host,Config::user,Config::pass); 
?>

Hierbei handelt es sich prinzipiell um den gleichen Weg, der auch bisher eingeschlagen wurde. Nur wurde hier die Klasse config definiert, in der die benötigten Angaben als Konstanten festgelegt wurden. Beide Varianten sind in PHP5 erlaubt. Für eine normale Verbindungsaufname zur Datenbank ist eine Klassendefinition aber häufig überproportioniert.

Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von franzg
  • 14.05.2017 - 02:00

Sehr informativ. Danke sehr!

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 07.10.2016 - 12:58

Danke für das Tutorial.

Portrait von dmtw2107
  • 16.11.2013 - 09:47

verständlich und toll erklärt danke für das tutorial

x
×
×