MySQLi mit PHP verbinden

Verbindung zur Datenbank herstellen

Damit man von PHP aus mit der Datenbank überhaupt arbeiten kann, muss man eine Verbindung herstellen. Üblicherweise gehen wir davon aus, dass es die Datenbank schon gibt, es wird später noch ein Beispiel geben, wie man von PHP aus eine Datenbank per Skript auch anlegen kann.

Da aber bei vielen Webhosting-Paketen eine Datenbank fix angelegt ist, entfällt diese Aufgabe meistens. Daher braucht es eine Verbindung zur bereits bestehenden Datenbank, die die Grundlage für die Kombination von PHP und MySQLi darstellt. Ist die Verbindung gelungen, können neue Datensätze gespeichert werden, Abfragen durchgeführt werden oder auch Veränderungen am Datenbestand vorgenommen werden.

PHP mit der Datenbank verbinden

In der Programmiersprache PHP gibt es einen umfangreichen Befehlssatz, mit dem die Datenbank erreicht und verstanden werden kann. Seit der Version 7.0 ist es in PHP Pflicht, den Befehlssatz für MySQLi zu nutzen, den es seit der Version 5.0 gibt.

$host        = "localhost";
$user        = "ichbins";
$pass            = "keineahnung";
$db        = "tabelle1";

// Verbindung zur Datenbank
$mysqli = new mysqli($host, $user, $pass, $db);
if ($mysqli->connect_errno) {
    die("Verbindung fehlgeschlagen: " . $mysqli->connect_error);
}

Das Beispiel zeigt die typische Verbindung, wie sie oft in PHP zu finden ist, um eine MySQLi-Datenbank anzusprechen. Damit die Verbindung aufgebaut werden kann, braucht es vier Informationen:

Im Falle einer vorinstallierten Datenbank übermittelt der Provider die Zugangsdaten, die meist im Verwaltungstool zu finden sind. Das Beispiel nennt zuerst die vier notwendigen Daten und danach wird per mysqli-Objekt die Verbindung zum Server hergestellt. Das bedeutet, dass PHP nachschaut, ob der Server überhaupt existiert und ob Benutzername und Passwort richtig sind. Wenn nicht, ist die Aktion auch schon wieder beendet und man kann sich seine Pläne entsorgen, bis der Fehler gefunden ist.

Passt der Zugang, dann wird die angeführte Datenbank ausgewählt und dem Parameter $mysqli zugewiesen, der dann zum Beispiel auf der ganzen Webseite eingesetzt werden kann - etwa zum Schließen der Datenbankverbindung oder zum Abfragen der Felder. Sollte es keine Verbindung geben, wird mit connect_errno eine entsprechende Fehlermeldung ausgegeben und die geplanten Aktionen müssen einmal warten, denn es muss das Problem aufgearbeitet werden.

Zugang per MySQLi als Vorgabe in der Config-Datei

Dieses Skriptbeispiel findet sich in vielen Datenbankanwendungen, wobei üblicherweise die paar Zeilen als config-Datei zentral abgelegt wird und per include in alle Programmteile inkludiert wird. Das hat den Vorteil, dass man bei Änderung der Zugangsdaten oder der Datenbank generell nicht alle Programmteile ändern muss, sondern dies zentral über die config-Datei durchführen kann.

Denkt man an einen Serverumzug und damit logischerweise neuen Zugangsdaten, kann man mit dieser zentralen Ablage der Datenbankzugänge enorm viel Zeit beim Umzug sparen.

Lesen Sie auch

So richtig aus dem Vollen kann man dann schöpfen, wenn man die Programmiersprache PHP mit dem System der MySQLi-Datenbank verknüpft. Der SQL-Befehlssatz bleibt bestehen, wird aber durch die PHP-Umgebung ummantelt, damit beide kommunizieren können: die Datenbank weiß, was Sache ist und PHP versteht die Antwort. MySQL + PHP bedeutet, dass man direkt vom Skript aus auf die Daten zugreifen kann.

Die Grundvoraussetzung ist einmal das Anlegen einer Datenbank, was auch von PHP aus möglich ist und dann braucht es die Verbindung zur Datenbank.

Damit ist die Grundbasis gelegt und man kann Tabellen anlegen und die Daten speichern. Dabei kann mit mysqli_insert_id die aktuelle laufende Nummer für weitere Aktionen nützlich sein und wichtig ist das Verständnis mit mysqli_close, um nicht mehr gebrauchte Verbindungen zu beenden. Wichtig ist aber auch die richtige Schreibweise beim Arbeiten mit den Daten.

Das Herzstück ist aber die Abfrage. Zweifelsohne braucht man delete und andere Befehle auch, um zu manipulieren, aber mit select kann man verschiedenste Abfragen durchführen wie nach Kriterium, Menge oder auch als Stringabfrage samt Sortierungsangabe.

Diesen Artikel teilen

Kategorien

Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen

Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel