Verbindung zur MySQL-Datenbank herstellen

Um die MySQL Datenbank nutzen zu können, muss eine Verbindung zwischen PHP und MySQL hergestellt werden. Dazu werden folgende Angaben benötigt (die man vom Provider erhält).

Host (MYSQL_HOST):
Der Server, auf dem sich die Datenbank befindet. Technisch ist es egal, ob die Datenbank sich auf dem gleichen Server befindet, wo auch Ihre Website liegt, oder auf einem anderen. Ist diese auf dem gleichen Server, dann lautet die Angabe "localhost" – ist diese auf einem anderen Server, dann irgendwas in der Art "db37___23.1und1.de" oder auch eine IP-Adresse.

Benutzername (MYSQL_BENUTZER)
Benutzername und Kennwort verhindern, dass sich Unbefugte einloggen. Bei der Installation von XAMPP ist das gerne „root“.

Kennwort (MYSQL_KENNWORT)
Kennwort zur Sicherheit, niemals aus der Hand geben – wenn jemand an Ihre Datenbanken kommt, kann er diese nach Belieben auslesen, ändern und löschen!

Diese Angaben benötigen Sie bei jedem Verbindungsaufbau. Daher ist es üblich, diese Informationen als Konstanten zu definieren und in einer Datei auszulagern und diese dann per require_once einzubinden. Speichern Sie also folgenden Quellcode unter dem Namen "konfiguration.php" - für spätere Beispiele wird der Verbindungsaufbau zu Datenbanken benötigt.

konfiguration.php - Einstellungen für DB-Zugriff
<?php
// die Konstanten auslagern in eigene Datei
// die dann per require_once ('konfiguration.php'); 
// geladen wird.
 
// Damit alle Fehler angezeigt werden
error_reporting(E_ALL);
 
// Zum Aufbau der Verbindung zur Datenbank
// die Daten erhalten Sie von Ihrem Provider
define ( 'MYSQL_HOST',      'localhost' );
 
// bei XAMPP ist der MYSQL_Benutzer: root
define ( 'MYSQL_BENUTZER',  '' );
define ( 'MYSQL_KENNWORT',  '' );
// für unser Bsp. nennen wir die DB adressverwaltung
define ( 'MYSQL_DATENBANK', 'adressverwaltung' );
?>

Der Aufbau der Verbindung erfolgt nun über: mysqli_connect

PHP-Quellcode: Verbidungsaufbau
<?php
require_once ('konfiguration.php');
$db_link = mysqli_connect (
                     MYSQL_HOST, 
                     MYSQL_BENUTZER, 
                     MYSQL_KENNWORT, 
                     MYSQL_DATENBANK
                    );
?>

Die Rückgabe der Funktion mysqli_connect wird in $db_link gespeichert. Diese enthält im Fall, dass es ein Problem gab, "FALSE", ansonsten wenn die Verbindung geklappt hat, weitere Informationen.

Zum Lernen von MySQL-Anweisungen sollten Sie sich Kontrollausgaben ausgeben – später ist es umso wichtiger, dass im Falle eines Problems ein sauberer Abbruch erfolgt, der Programmierer per E-Mail benachrichtigt wird und der Fehler gespeichert wird.

Unser komplettes Programm (ohne Auslagerung der Zugangsdaten)

PHP-Quellcode: Zugriff auf Datenbank
<?php
error_reporting(E_ALL);
 
// Zum Aufbau der Verbindung zur Datenbank
define ( 'MYSQL_HOST',      'localhost' );
define ( 'MYSQL_BENUTZER',  '' );
define ( 'MYSQL_KENNWORT',  '' );
define ( 'MYSQL_DATENBANK', 'adressverwaltung' );
 
$db_link = mysqli_connect (MYSQL_HOST, 
                           MYSQL_BENUTZER, 
                           MYSQL_KENNWORT, 
                           MYSQL_DATENBANK);
 
if ( $db_link )
{
    echo 'Verbindung erfolgreich: ';
    print_r( $db_link);
}
else
{
    // hier sollte dann später dem Programmierer eine
    // E-Mail mit dem Problem zukommen gelassen werden
    die('keine Verbindung möglich: ' . mysqli_error());
}
?>

Durchaus sinnvoll ist nun noch sicherheitshalber anzugeben, mit welchem Zeichensatz die Datenbank arbeiten soll (sonst kommen gerne die Umlaute „öäü“ als Kästchen oder sonstigen unschönen Erscheinungen).

Davor bewahrt i.d.R. eine Zeile PHP nach dem mysqli_connect:

mysqli_set_charset($db_link, 'utf8');

Hier nehme ich einfach mal an, dass die meisten mit UTF8 arbeiten, daher die Angabe „utf8“.

Sollte man noch mit mysql_connect (also nicht mysqli_connect arbeiten), dann ist dort die Reihenfolge der Angabe beim Festlegen des Charsets anders herum: „mysql_set_charset('utf8',$db_connect);“