Wie wird in PHP eine Verbindung zu einer MySQL-Datenbank hergestellt?

In PHP bestehen die folgenden Erweiterungen, um eine Verbindung zu einer MySQL-Datenbank herzustellen:

  • MySQL
    Dies ist die ‚alte‘ Erweiterung und ist seit der PHP-Version 5.5 als ’nicht mehr unterstützt‘ markiert. Ab der PHP-Version 7.0 fehlt die Erweiterung ganz. Diese Erweiterung unterstützt die Funktionalitäten von MySQL bis Version 4.1
  • MySQLi
    Dies ist die ’neuere‘ verbesserte Erweiterung (improved extension) und unterstützt die Funktionalitäten von MySQL ab Version 4.1.
  • PDO
    PHP Data Objects ähneln MySQLi in einigen Dingen, ist im Gegensatz zu MySQLi rein objektorientiert. Über PDO kann nicht nur auf MySQL zugegriffen werden, sondern auch auf andere Datenbanksysteme wie IBM DB2, Informix, MS SQL Server, ODBC, PostgreSQL, SQLite.

Während der Erstellung einer Verbindung zu einer MySQL-Datenbank geschieht folgendes:

  1. Verbindung zum MySQL-Server herstellen, Datenbank auswählen und Anmeldeinformationen senden.
  2. Abfrage senden.
  3. Ergebnis verarbeiten, aufbereiten und ausgeben.
  4. Verbindung schließen.

 

PHP Verbindung zu MySQL
PHP Verbindung zu MySQL

Wie in PHP eine Verbindung zu MySQL-Datenbank herstellen? Das werde ich nun in allen Einzelheiten erklären:

1. In PHP eine Verbindung zu MySQL-Datenbank herstellen

$mysqli = new mysqli();
$mysqli->connect("localhost", "root", "Kennwort", "kursverwaltung", Port);

Die 4 Parameter von connect sind:

  1. Parameter – „localhost“
    Dies ist der Name des Servers auf dem die Datenbank sich befindet
  2. Parameter – „root“
    Der Benutzername, in Produktivsystemen sollten Sie auf jeden Fall einen anderen benutzen
  3. Parameter – „Kennwort“
    Das Kennwort des Benutzers, in Produktivsystemen sollten Sie auf jeden Fall ein sicheres Passwort verwenden
  4. Parameter – „kursverwaltung“
    Der Name der Datenbank auf dem Server
  5. Parameter – Port
    Ein weiterer Parameter kann angegeben werden – eine Anschlussnummer (Port), wenn die Umgebung, in der Sie arbeiten, das erfordert.
    Ist hier nichts angegeben, so wird der Port 3306 (Standard) verwendet für die Anbindung.

1.1. Fehler bei der Verbindung zur MySQL-Datenbank aufgetreten?

In der Praxis wird übrigens in der Regel direkt auch überprüft, ob der Verbindungsaufbau erfolgreich war. Ist der Verbindungsaufbau gescheitert, wird entsprechend reagiert.

Das könnte zum Beispiel so aussehen:

$mysqli = new mysqli("localhost", "root", "", "kursverwaltung");
if ($mysqli->connect_error) {
   echo "Verbindungsfehler: " . $mysqli->connect_error;
   exit();
}

Die Eigenschaft connect_error hat im Fehlerfall als Wert eine Beschreibung des letzten Verbindungsfehlers. Im Erfolgsfall ist der Wert der Eigenschaft null.
Hier wird überprüft, ob connect_error des Objekts $mysqli einen Wert hat:
Wenn JA, ist das gleichbedeutend mit einem VERBINDUNGSFEHLER. Die Beschreibung des Fehlers würde ausgegeben und das Skript mit exit() beendet werden.

2. Abfrage senden an die MySQL-Datenbank

Nachdem die Verbindung erfolgreich aufgebaut und die Datenbank ausgewählt ist, können im nächsten Schritt die Daten abfragen. SQL-Statements können in PHP mit der Methode query() der
Klasse mysqli an das DBMS geschickt werden.

Die formale Syntax von query() lautet in der einfachsten Form:

query (string $query)

Das SQL-Kommando wird vom Typ String als Parameter übergeben. Der Rückgabewert von query() hängt von der Art des SQL-Befehls und vom Erfolg der Ausführung ab.
Schlägt die Ausführung des Kommandos fehl, liefert query() immer ‚false‘ zurück. Ist das SQL-Kommando ein SELECT, SHOW, DESCRIBE oder EXPLAIN, liefert die Methode query() im Erfolgsfall ein Objekt vom Typ mysqli_result zurück.

Bei allen anderen SQL-Kommandos (zum Beispiel CREATE, DROP, INSERT, UPDATE etc.) liefert query() nach erfolgreicher Ausführung true zurück.

3. Ergebnis verarbeiten, aufbereiten und ausgeben

Nach dem erfolgreichen Verbindungsaufbau wird mit der Methode query() des mysqli-Objekts das SQL-Kommando an das DBMS gesendet.

if ($ergebnis = $mysqli -> query("SELECT * FROM teilnehmer")) {
  $data = $ergebnis ->fetch_all();
  $ergebnis -> free();
}
print_r($data);

In diesem Fall werden mit dem Kommando „SELECT * FROM teilnehmer“ alle Datensätze in der Tabelle „teilnehmer“ abgefragt.

Der Rückgabewert wird in einer Variablen $ergebnis zugewiesen. Es gibt nun 2 Möglichkeiten:

  • Hat $ergebnis den Wert false, gibt es keine Ergebnismenge. Deshalb passiert dann zunächst nichts weiter.
  • Im Erfolgsfall ist $ergebnis eine Instanz der Klasse mysqli_result.

Da jeder Datensatz in einem eigenen Array gespeichert wird, liefert die Methode fetch_all() das Ergebnis der Abfrage als 2-dimensionales Array zurück.

Das Array wird anschließend der Variablen $data zugewiesen.

Mit dem Kommando print_r($data) wird das gelieferte Array $data ausgegeben.

Danach wird der Speicher mit $ergebnis -> free() wieder freigegeben. Man kann auch $ergebnis -> close() schreiben.

4. Verbindung zur MySQL-Datenbank schließen

Am Ende die Verbindung zur Datenbank schliessen:

$mysqli -> close();

 

Diese Seite verwendet Cookies, um die Nutzerfreundlichkeit zu verbessern. Mit der weiteren Verwendung stimmst du dem zu.

Datenschutzerklärung
Nach oben scrollen