Anzeige von Fehlern mit MySQLi-Fehlerfunktionen

Mehvish Ashiq 15 Februar 2024
  1. PHP MySQLi Fehlerfunktionen
  2. Fazit
Anzeige von Fehlern mit MySQLi-Fehlerfunktionen

MySQLi ist eine PHP-Funktion, die für den Zugriff auf den MySQL-Datenbankserver verwendet wird. Sie können diese Erweiterung verwenden, wenn Sie MySQL-Version 4.1.13 oder höher haben.

Es gibt verschiedene MySQLi-Funktionen, mit denen Sie verschiedene Funktionen in PHP ausführen können. In diesem Artikel lernen wir die Fehlerfunktionen von MySQLi kennen.

Wir werden auch sehen, wie und wo Codebeispiele verwendet werden, und die Ausgaben beobachten. Für dieses Tutorial verwenden wir die MySQL-Version 8.0.27 und die PHP-Version 7.4.1.

PHP MySQLi Fehlerfunktionen

In diesem Tutorial lernen wir die folgenden PHP MySQLi-Fehlerfunktionen kennen:

  • mysqli_error()
  • mysqli_errno()
  • mysqli_error_list()
  • mysqli_connect_error()
  • mysqli_connect_errno()

Alle diese Funktionen können im objektorientierten Stil und im prozeduralen Stil verwendet werden. Lassen Sie uns beide Syntaxen mit der Funktion mysqli_error() verstehen.

Syntax der Funktion mysqli_error() im objektorientierten Stil

string $mysqli->error;

Syntax der Funktion mysqli_error() im prozeduralen Stil

string mysqli_error ( mysqli $link )

mysqli_error() Funktion in MySQL

Mit dieser Funktion wird die letzte Fehlerbeschreibung zum letzten Funktionsaufruf (falls vorhanden) ausgegeben. Es wird verwendet, wenn Sie wissen möchten, ob die SQL-Abfrage einen Fehler enthält oder nicht.

mysqli_error() gibt die Fehlerbeschreibung und einen leeren String zurück, wenn kein Fehler vorliegt. Siehe folgendes Beispiel.

Beispielcode mit prozeduralem Stil:

<?php
    $host = "localhost";
    $username = "root";
    $password = "";
    $database = "person";

    $connection = mysqli_connect($host, $username, $password, $database) 
    or die("Connection Failed"); 

    $sql = "SELECT * FROM teacher";
    $result = mysqli_query($connection, $sql);
    $error_message = mysqli_error($connection);

    if($error_message == ""){
        echo "No error related to SQL query.";
    }else{
        echo "Query Failed: ".$error_message;
    }
    mysqli_close($connection);
?>

Der oben angegebene Code versucht, die Verbindung mit den Variablen $host, $username, $password, $database herzustellen und diese Verbindung in der Variablen $connection zu speichern.

Die mysqli_error()-Funktion nimmt diese Verbindungsvariable $connection als Parameter und prüft, ob es einen Fehler gibt, der durch den letzten MySQLi-Funktionsaufruf verursacht wurde, der hier mysqli_query($connection, $sql) ist.

Ausgabe:

Fehler bei Verwendung von mysqli-Fehlerfunktionen anzeigen - kein Fehler bei Verwendung von mysqli_error

Ändern Sie nun den Tabellennamen in der SQL-Abfrage von teacher auf person und beobachten Sie die unten angegebene Ausgabe.

Ausgabe:

Fehler bei der Verwendung von mysqli-Fehlerfunktionen anzeigen - Fehler bei der Verwendung von mysqli_error

Wir als Entwickler können leicht nachvollziehen, dass es in der Datenbank person keine person-Tabelle gibt (das bedeutet der obige Fehler).

Lassen Sie den Tabellennamen unverändert und ersetzen Sie die Zeile $error_message = mysqli_error($connection); mit $error_message = $connection->error; den objektorientierten Stil mit der Fehlerfunktion MySQLi zu üben und zu verstehen.

mysqli_errno() Funktion in MySQL

mysqli_errno() funktioniert genauso wie mysqli_error(), aber es gibt den Fehlercode anstelle der Fehlerbeschreibung zurück.

Schreiben Sie den folgenden Code zum Üben und Verstehen. Sie haben vielleicht bemerkt, dass wir einen prozeduralen Stil verwenden, um diese Funktion zu üben.

<?php
     $host = "localhost";
     $username = "root";
     $password = "";
     $database = "person";

     $connection = mysqli_connect($host, $username, $password, $database) 
     or die("Connection Failed"); 

     $sql = "SELECT * FROM person";
     $result = mysqli_query($connection, $sql);
     $error_message = mysqli_errno($connection);

     if($error_message == ""){
     	echo "No error related to SQL query.";
     }else{
     	echo "Query Failed: ".$error_message;
     }
    mysqli_close($connection);
?>

Der oben angegebene Code zeigt die folgende Ausgabe, in der Sie eine Zahl als Fehlercode sehen.

Ausgabe:

Fehler bei der Verwendung von msyqli-Fehlerfunktionen anzeigen - Fehler bei der Verwendung von mysqli_errno

Die Frage ist, warum verwenden wir diese Funktion, um nur die Zahlen anzuzeigen? Denn wenn Sie eine benutzerfreundliche Fehlermeldung (benutzerdefinierte Nachricht) drucken möchten, können Sie diesen Fehlercode in if-else-Anweisungen verwenden.

Siehe den folgenden Code und seine Ausgabe unten.

<?php
     $host = "localhost";
     $username = "root";
     $password = "";
     $database = "person";

     $connection = mysqli_connect($host, $username, $password, $database) 
     or die("Connection Failed"); 

     $sql = "SELECT * FROM person";
     $result = mysqli_query($connection, $sql);
     $error_message = mysqli_errno($connection);

     if($error_message == 1146){
     	echo "You are trying to read the data from a table which doesn't exist in your 			database "."'".$database."'";
     }
    mysqli_close($connection);
?>

Ausgabe:

Anzeige von Fehlern mit mysqli-Fehlerfunktionen - benutzerdefinierte Fehlermeldung mit mysqli_errno

mysqli_error_list() Funktion in MySQL

Diese Funktion ist sehr nützlich, um den Fehlercode, den SQL-Status und die Fehlerbeschreibung zu kennen, da diese Funktion ein Array zurückgibt, das alle erforderlichen Informationen enthält.

Beispielcode:

<?php
     $host = "localhost";
     $username = "root";
     $password = "";
     $database = "person";

     $connection = mysqli_connect($host, $username, $password, $database) 
     or die("Connection Failed"); 

     $sql = "SELECT * FROM person";
     $result = mysqli_query($connection, $sql);
     print_r(mysqli_error_list($connection));
     mysqli_close($connection);
?>

Ausgabe:

Anzeige von Fehlern mit mysqli-Fehlerfunktionen - Fehlerliste mit mysqli_error_list

mysqli_connect_error() Funktion in MySQL

mysqli_connect_error() gibt die Fehlerbeschreibung der letzten Verbindung zurück, falls vorhanden. Obwohl die Funktion die() auch über die erfolglose Verbindung informiert, gibt mysqli_connect_error() den Fehler zurück, den wir leicht verstehen können.

Schreiben Sie zuerst den folgenden Code, sehen Sie sich seine Ausgabe an, und dann vergleichen wir ihn mit der Ausgabe von mysqli_connect_error().

<?php
     $host = "localhost";
     $username = "root";
     $password = "";
     $database = "person";

     $connection = mysqli_connect($host, $username, $password, $database) 
     or die("Connection Failed"); 

     $sql = "SELECT * FROM person";
     $result = mysqli_query($connection, $sql);
     $error_message = mysqli_error($connection);

     if($error_message != ""){
     	echo "Query Failed: ".$error_message;
      }
    mysqli_close($connection);
?>

Ausgabe:

Fehler bei der Verwendung von mysqli-Fehlerfunktionen anzeigen - Fehler bei der Verwendung von mysqli_connect_error Teil a

Siehe die oben angegebene Ausgabe; Sie können sehen, dass der Fehler, den wir verstehen können, irgendwo in der Mitte liegt.

Stellen Sie sich vor, wenn Sie 2 oder 3 Fehler haben, wäre es nicht einfach, das herauszufinden. Verwenden Sie nun mysqli_connect_error() und sehen Sie den Unterschied mit dem folgenden Code und der folgenden Ausgabe.

<?php
     $host = "localhost";
     $username = "newroot";
     $password = "";
     $database = "person";

     $connection = mysqli_connect($host, $username, $password, $database) 
     or die("Connection Failed: ".mysqli_connect_error()); 

     $sql = "SELECT * FROM teacher";
     $result = mysqli_query($connection, $sql);
     $error_message = mysqli_error($connection);

     if($error_message != ""){
     	echo "SQL Query Failed: ".$error_message;
    }
    mysqli_close($connection);
?>

Ausgabe:

Fehler bei der Verwendung von mysqli-Fehlerfunktionen anzeigen - Fehler bei der Verwendung von mysqli_connect_error Teil b

Die obige Ausgabe besagt eindeutig, dass es keinen Benutzer namens newroot gibt, der Ihnen keinen Zugriff auf die Datenbank erlaubt.

mysqli_connect_errno() Funktion in MySQL

Diese Funktion verhält sich wie mysqli_connect_error(), zeigt aber statt der Fehlermeldung den Fehlercode an. Wir können diesen Fehlercode verwenden, um benutzerdefinierte Fehlermeldungen zu schreiben.

Beispielcode:

<?php
     $host = "localhost";
     $username = "newroot";
     $password = "";
     $database = "person";

     $connection = mysqli_connect($host, $username, $password, $database) 
     or die("Connection Failed: ".mysqli_connect_errno()); 

     $sql = "SELECT * FROM teacher";
     $result = mysqli_query($connection, $sql);
     $error_message = mysqli_error($connection);

     if($error_message != ""){
	     echo "SQL Query Failed: ".$error_message;
     }
     mysqli_close($connection);
?>

Ausgabe:

Fehler bei der Verwendung von mysqli-Fehlerfunktionen anzeigen - Fehler bei der Verwendung von mysqli_connect_errno

Fazit

Unter Berücksichtigung all der Diskussionen und Beispiele haben wir zwei Hauptkategorien geschlossen. Die erste Kategorie zeigt die Fehler zu SQL-Abfragen und die andere zu Datenbankverbindungen.

Abhängig von den Projektanforderungen können wir die Fehlermeldung oder den Fehlercode in jeder Kategorie drucken.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - MySQL Error