Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie $ errno, um detaillierte Ausnahmen in Kombination mit MySQLI_SQL_Exception zu fangen

Verwenden Sie $ errno, um detaillierte Ausnahmen in Kombination mit MySQLI_SQL_Exception zu fangen

M66 2025-05-28

Die MySQL -Erweiterung ist eine der häufigsten Datenbankverbindungs ​​-Tools, wenn sie PHP verwenden, um MySQL -Datenbanken zu manipulieren. Während der Datenbankoperationen sind jedoch einige Ausnahmen oder Fehler unvermeidlich. Um diese Ausnahmen besser zu fangen und zu bewältigen, bieten MySQLI_SQL_Exception und Mysqli :: $ errno leistungsstarke Funktionen. In diesem Artikel wird Beispiele verwendet, um zu veranschaulichen, wie Sie detaillierte Datenbankausnahmsinformationen in Kombination mit MySQLI_SQL_Exception erfassen und diese Fehler mithilfe von MySQLI :: $ errno weiter verarbeiten.

1. Was ist MySQLi_SQL_Exception ?

MySQLI_SQL_Exception ist eine Klasse in PHP, die speziell zur Behandlung von MySQL -Datenbankausnahmen verwendet wird. Wenn eine Datenbankabfrage ausgeführt wird, wird die entsprechende Ausnahme die entsprechende Ausnahme ausgelöst, wenn ein Fehler auftritt. Dies ermöglicht es Entwicklern, diese Ausnahmen durch Versuch zu fangen und zu bewältigen. Fangen Sie Aussagen, ohne sich auf herkömmliche Fehlerbehandlungsmethoden zu verlassen (wie MySQLI_Error oder MySQLi_errno ).

2. Die Rolle von MySQLI :: $ errno

In MySQLI_SQL_Exception zeichnet MySQLI :: $ errno den Fehlercode für die letzte MySQL -Operation auf. Es ist eine Nummer, die den Typ des Datenbankbetriebsfehlers angibt. Zum Beispiel kann MySQLI :: $ errno uns helfen, zu unterscheiden, ob es sich um einen Verbindungsfehler, einen Abfrage -Syntaxfehler oder ein Berechtigungsproblem usw. handelt. In Kombination mit MySQLI_SQL_Exception können Fehlerinformationen ausführlicher erfasst und verarbeitet werden.

3.. Grundprozess des Fang- und Handhabungsausnahmens

Die grundlegenden Schritte zum Fangen von Datenbankausnahmen mithilfe von MySQLI_SQL_Exception sind wie folgt:

  1. Schalten Sie beim Erstellen einer Datenbankverbindung den Ausnahmemodus ein.

  2. Verwenden Sie den Block für Versuch ... Catch -Anweisungen, um Ausnahmen in Datenbankoperationen zu fangen.

  3. Verwenden Sie MySQLI :: $ errno im Catch -Anweisungsblock, um den Fehlercode zu erhalten, und geben Sie detaillierte Fehlerinformationen oder die Verarbeitungslogik basierend auf dem Fehlercode an.

4. Beispielcode

Hier ist ein vollständiges Beispiel für die Verwendung von MySQLI_SQL_Exception und MySQLi :: $ errno, um Datenbankausnahmen zu fangen und zu verarbeiten:

 <?php
// Ausnahmebehandlung einschalten
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

// Erstellen Sie eine Datenbankverbindung
try {
    $mysqli = new mysqli("localhost", "root", "password", "test_database");

    // Führen Sie Datenbankabfragevorgänge durch
    $result = $mysqli->query("SELECT * FROM non_existing_table");

} catch (mysqli_sql_exception $e) {
    // Datenbankausnahmen fangen
    echo "Die Datenbankoperation ist fehlgeschlagen: " . $e->getMessage() . "<br>";

    // Ausgabefehlercode
    echo "Fehlercode: " . $e->getCode() . "<br>";

    // Weitere Behandlungen mit verschiedenen Arten von Fehlern
    if ($e->getCode() == 1146) { // 1146 Zeigt an, dass die Tabelle nicht existiert
        echo "Fehler:Die Tabelle existiert nicht,Bitte überprüfen Sie die Datenbankstruktur。";
    } else {
        echo "Fehler:Abfrage kann nicht ausgeführt werden,Bitte überprüfen Sie Ihre SQL Grammatik。";
    }

    // Kann auch verwendet werden mysqli::$errno Spezifisch werden MySQL Fehlercode
    echo "MySQL Fehlercode: " . $mysqli->errno . "<br>";
    echo "MySQL Fehler信息: " . $mysqli->error . "<br>";
}
?>

5. Code Parsing

  1. Ausnahmebericht einschalten :
    Verwenden Sie den MySQLI_Report (mysqli_report_error | mysqli_report_strict); Anweisung zum Aktivieren des Ausnahmeberichts mySQLi_SQL_Exception . Dies lässt MySQLI eine mySQLI_SQL_Exception -Ausnahme auswerfen, wenn er auf einen Fehler stößt, anstatt einen Fehler zu melden, indem ein Fehlercode zurückgegeben wird.

  2. Ausnahme aufnehmen :
    Durch die Aussage von Versuch können wir alle Ausnahmen von MySQLi_SQL_Exception fangen und im Catch -Anweisungsblock verarbeiten.

  3. Erhalten Sie Fehlercode und Informationen :
    Der Fehlercode der Datenbankausnahme kann über $ e-> getCode () und unterschiedliche Fehlereingabeinformationen gemäß dem Fehlercode erhalten werden.

  4. Verwenden Sie MySQLI :: $ Errno und MySQLI :: $ ERROR :
    Holen Sie sich Fehlercode und Fehlerinformationen für MySQL-Datenbanken über $ MySQLI-> Errno und $ mySQLI-> Fehler , was sehr nützlich ist, um Fehler zu debuggen und zu behandeln.

6. Optimierung der Fehlerbehandlung

In der tatsächlichen Entwicklung können wir zusätzlich zum Erfassen und Ausgangsfehlerinformationen auch den Fehlertyp optimieren:

  • Fehlerprotokollierung : Fehlerinformationen in Protokolldateien aufnehmen, um die nachfolgende Anzeige und Fehlerbehebung zu vereinfachen.

  • Benutzerfreundliche Fehlereingabeaufforderungen : Zeigen Sie freundliche Eingabeaufforderungsinformationen entsprechend dem Fehlertyp an, um den Benutzern Datenbankdetails zu vermeiden.

  • Transaktionsverarbeitung : Für Operationen, die mehrere Abfragen beinhalten, können Transaktionsmechanismen verwendet werden, um die Datenkonsistenz und -zuverlässigkeit sicherzustellen.

7. Zusammenfassung

Durch die Kombination von MySQLI_SQL_Exception und MySQLI :: $ errno können wir detaillierte Ausnahmeinformationen in Datenbankoperationen erfassen und verarbeiten. Dies hilft Entwicklern nicht nur, Probleme schneller zu finden, sondern verbessert auch die Robustheit und die Benutzererfahrung des Systems. Hoffentlich können die Beispiele in diesem Artikel Ihnen dabei helfen, den Mechanismus zur Datenbankausnahmeberechnung in PHP besser zu verstehen und zu verwenden.