errno
In diesem Artikel konzentrieren wir uns auf die Funktion mysqli_errno() in PHP, die den numerischen Fehlercode für die letzte MySQLi-Operation zurückgibt. Wir bieten einen Überblick über die Funktion, ihre Funktionsweise und praktische Beispiele.
Einführung in die mysqli_errno()-Funktion
Die Funktion mysqli_errno() ist eine integrierte PHP-Funktion, die den numerischen Fehlercode für die letzte MySQLi-Operation zurückgibt. Sie ist nützlich, wenn Sie Fehler in Ihrem MySQLi-Code behandeln und basierend auf dem zurückgegebenen Code die entsprechenden Maßnahmen ergreifen müssen.
Verwendung der mysqli_errno()-Funktion
Die Verwendung der Funktion mysqli_errno() ist unkompliziert. Sie erfordert ein gültiges MySQLi-Verbindungsobjekt als Parameter. Hier ist ein Beispiel:
Wie verwendet man die mysqli_errno()-Funktion?
<?php
$mysqli = mysqli_connect("localhost", "username", "password", "database");
if (!$mysqli) {
die("Connection failed: " . mysqli_connect_error());
}
$query = "SELECT * FROM my_table";
$result = mysqli_query($mysqli, $query);
if (!$result) {
$error_code = mysqli_errno($mysqli);
echo "Failed to execute query. Error code: " . $error_code;
exit();
}
mysqli_close($mysqli);
?>In diesem Beispiel überprüfen wir zunächst, ob die Verbindung erfolgreich war. Anschließend führen wir eine Abfrage mit der Funktion mysqli_query() aus und speichern das Ergebnis in einer Variablen. Wir prüfen, ob ein Fehler in der Abfrage aufgetreten ist, indem wir die Bedingung !$result verwenden. Falls ein Fehler vorliegt, rufen wir mysqli_errno($mysqli) auf, um den numerischen Fehlercode der letzten MySQLi-Operation zu erhalten. Danach geben wir den Fehlercode aus und beenden das Skript.
Erweiterte Verwendung
Die Funktion mysqli_errno() kann auch in fortgeschritteneren Szenarien eingesetzt werden. Bei der Arbeit mit mehreren Verbindungen müssen Sie das spezifische MySQLi-Objekt an die Funktion übergeben, um den Fehlercode für diese bestimmte Verbindung abzurufen. Hier ist ein Beispiel:
Erweiterte Verwendung von PHP mysqli_errno()
<?php
$mysqli1 = mysqli_connect("localhost", "username", "password", "database1");
$mysqli2 = mysqli_connect("localhost", "username", "password", "database2");
if (!$mysqli1 || !$mysqli2) {
die("One or more connections failed.");
}
$query = "SELECT * FROM my_table";
$result1 = mysqli_query($mysqli1, $query);
$result2 = mysqli_query($mysqli2, $query);
if (!$result1) {
$error_code = mysqli_errno($mysqli1);
echo "Failed to execute query on connection 1. Error code: " . $error_code;
exit();
}
if (!$result2) {
$error_code = mysqli_errno($mysqli2);
echo "Failed to execute query on connection 2. Error code: " . $error_code;
exit();
}
mysqli_close($mysqli1);
mysqli_close($mysqli2);
?>In diesem Beispiel erstellen wir zwei MySQLi-Objekte und stellen Verbindungen zu zwei verschiedenen MySQL-Datenbanken her. Anschließend führen wir dieselbe Abfrage mit jeder Verbindung aus und speichern das Ergebnis in einer Variablen. Wir prüfen, ob in jeder Abfrage ein Fehler aufgetreten ist, indem wir die Bedingung !$result verwenden. Falls ein Fehler vorliegt, rufen wir mysqli_errno() für das jeweilige MySQLi-Objekt auf, um den Fehlercode für diese spezifische Verbindung zu erhalten. Danach geben wir den Fehlercode aus und beenden das Skript.
Hinweis:
mysqli_errno()gibt nur einen numerischen Code zurück. Um eine menschenlesbare Fehlermeldung zu erhalten, verwenden Sie die Begleitfunktionmysqli_error($mysqli). Zu den gängigen MySQL-Fehlercodes gehören1045(Zugriff verweigert) und1049(Unbekannte Datenbank). Eine vollständige Liste finden Sie in der offiziellen MySQL-Dokumentation zu Fehlercodes.
Fazit
Zusammenfassend lässt sich sagen, dass die Funktion mysqli_errno() ein nützliches Werkzeug zur Fehlerbehandlung in Ihrem MySQLi-Code ist und es ermöglicht, basierend auf dem zurückgegebenen Code die entsprechenden Maßnahmen zu ergreifen. Durch die Überprüfung von Verbindungen, die Übergabe des korrekten Verbindungsobjekts und die Interpretation der numerischen Codes können Sie robustere und flexiblere MySQLi-Abfragen erstellen.
Praxis
Was bewirkt die PHP errno-Funktion?