Prozedurale und objektorientierte Schnittstelle
Die mysqli-Erweiterung verfügt über eine doppelte Schnittstelle. Sie
unterstützt das prozedurale und das objektorientierte Programmier-Paradigma.
Benutzer, die von der alten mysql-Erweiterung umsteigen, werden vielleicht
die prozedurale Schnittstelle bevorzugen. Die prozedurale Schnittstelle ist
ähnlich wie die der alten mysql Erweiterung. In vielen Fällen unterscheiden
sich die Funktionsnamen nur durch das Präfix. Einige mysqli-Funktionen
benötigen ein Verbindungs-Handle als ersten Parameter, während
entsprechende Funktionen der alten mysql-Schnittstelle es als optionalen
letzten Parameter nehmen.
Beispiel #1 Einfacher Umstieg von der alten mysql-Erweiterung
<?php
$mysqli = mysqli_connect("example.com", "user", "password", "database");
$result = mysqli_query($mysqli, "SELECT 'Bitte verwenden Sie nicht die veraltete mysql-Erweiterung für neue Projekte. ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($result);
echo $row['_msg'];
$mysql = mysql_connect("example.com", "user", "password");
mysql_select_db("test");
$result = mysql_query("SELECT 'Verwenden Sie stattdessen die mysqli-Erweiterung.' AS _msg FROM DUAL", $mysql);
$row = mysql_fetch_assoc($result);
echo $row['_msg'];
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Bitte verwenden Sie nicht die veraltete mysql-Erweiterung für neue Projekte. Verwenden Sie stattdessen die mysqli-Erweiterung.
Die objektorientierte Schnittstelle
Neben der klassischen prozeduralen Schnittstelle kann der Benutzer auch die
objektorientierte Schnittstelle verwenden. Die Dokumentation ist anhand der
objektorientierten Schnittstelle gegliedert. Um den Einstieg zu
erleichtern, sind die Funktionen der objektorientierten Schnittstelle nach
ihrem Zweck gruppiert. Der Referenzteil enthält Beispiele für beide
Syntaxvarianten.
Es gibt keine signifikanten Leistungsunterschiede zwischen den beiden
Schnittstellen. Der Benutzer kann seine Wahl nach persönlichen Vorlieben
treffen.
Beispiel #2 Objektorientierte und prozedurale Schnittstelle
<?php
$mysqli = mysqli_connect("example.com", "user", "password", "database");
$result = mysqli_query($mysqli, "SELECT 'A world full of ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($result);
echo $row['_msg'];
$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query("SELECT 'choices to please everybody.' AS _msg FROM DUAL");
$row = $result->fetch_assoc();
echo $row['_msg'];
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
A world full of choices to please everybody.
Für die Kurzanleitung wird die objektorientierte Schnittstelle verwendet,
weil der Referenzabschnitt entsprechend aufgebaut ist.
Stile miteinander kombinieren
Es ist jederzeit möglich, zwischen den Stilen zu wechseln. Das Kombinieren
beider Stile wird aus Gründen des Programmierstils und der Verständlichkeit
des Codes nicht empfohlen.
Beispiel #3 Schlechter Programmierstil
<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
$result = mysqli_query($mysqli, "SELECT 'Möglich, aber schlechter Stil.' AS _msg FROM DUAL");
if ($row = $result->fetch_assoc()) {
echo $row['_msg'];
}
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Möglich, aber schlechter Stil.
Siehe auch