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