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