Aktueller Standort: Startseite> Neueste Artikel> Wie erstelle ich ein detailliertes Datenbank -Abfragefehler -Eingabeaufforderungssystem mit MySQLI :: $ errno?

Wie erstelle ich ein detailliertes Datenbank -Abfragefehler -Eingabeaufforderungssystem mit MySQLI :: $ errno?

M66 2025-06-23

Die Verwendung von MySQLI -Erweiterungen ist eine der häufigsten Möglichkeiten, Datenbankvorgänge in PHP durchzuführen. Wenn Datenbankabfragefehler jedoch in der Regel ein klares und detailliertes Fehleraufforderungssystem benötigen, um Entwicklern zu helfen, Probleme zu lokalisieren und zu beheben. MySQLI :: $ errno kann verwendet werden, um Fehlercodes zu erhalten, die in Datenbankvorgängen auftreten. In Kombination mit MySQLI :: $ ERROR können wir ein detailliertes Fehlereingabesystem implementieren.

In diesem Artikel wird vorgestellt, wie Sie MySQLI :: $ errno verwenden, um ein detailliertes Datenbank -Query -Fehleraufforderungssystem zu erstellen, um sicherzustellen, dass Entwickler bei Abfragefehlern ausreichende Fehlerinformationen erhalten können.

1. Vorbereitung: Erstellen Sie eine Datenbankverbindung

In einem tatsächlichen Fehlerbehandlungssystem müssen wir zunächst eine Verbindung zur Datenbank herstellen. In PHP können wir die MySQLI -Klasse dazu verwenden.

 <?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

// Eine Verbindung erstellen
$conn = new mysqli($servername, $username, $password, $dbname);

// Verbindung erkennen
if ($conn->connect_error) {
    die("Verbindung ist fehlgeschlagen: " . $conn->connect_error);
}
?>

2. Führen Sie die Datenbankabfrage aus und verarbeiten Sie Fehler

Wenn die Ausführung der Datenbankabfrage fehlschlägt, gibt MySQLI :: $ errno die falsche Nummer zurück, und MySQLI :: $ ERROR gibt die Fehlerbeschreibungsinformationen zurück. Wir können diese Informationen verwenden, um detaillierte Fehleranpassungen zu generieren.

 <?php
$sql = "SELECT * FROM non_existing_table"; // Eine falsche Frage

$result = $conn->query($sql);

if (!$result) {
    $errorCode = $conn->errno; // Holen Sie sich den Fehlercode
    $errorMessage = $conn->error; // Fehlermeldung abrufen
    echo "Abfragefehler,Fehlercode:$errorCode,Fehlermeldung:$errorMessage";
}
?>

Im obigen Code haben wir absichtlich eine falsche SQL -Abfrage geschrieben, um den Fehler auszulösen. Wenn die Abfrage fehlschlägt, erhalten wir den Fehlercode über $ conn-> errno und die Fehlerbeschreibung über $ conn-> Fehler, um Entwicklern das Problem klar zu verstehen.

3. Implementieren Sie ein detailliertes System zur Fehlereingabeaufforderung

Um die Fehleraufforderung in Betrieb zu gestalten, kann die Fehlermeldung in eine HTML -Seite angeordnet werden, einschließlich weitere diagnostische Informationen wie Fehlercode, Abfragehalt, Fehlerzeit usw.

 <?php
function handleDatabaseError($conn) {
    $errorCode = $conn->errno;
    $errorMessage = $conn->error;
    $query = $conn->last_query; // Holen Sie sich die zuletzt ausgeführte Abfrage
    $timestamp = date("Y-m-d H:i:s");

    echo "<h2>数据库Abfragefehler</h2>";
    echo "<p><strong>Fehlerzeit:</strong>$timestamp</p>";
    echo "<p><strong>Fehlercode:</strong>$errorCode</p>";
    echo "<p><strong>Fehlermeldung:</strong>$errorMessage</p>";
    echo "<p><strong>Ausführungsabfrage:</strong><pre>$query</pre></p>";
    echo "<p>Bitte überprüfen SQL Fragen Sie ab und versuchen Sie, Fehler zu beheben。</p>";
}

$sql = "SELECT * FROM non_existing_table"; // Fehlerabfrage

$result = $conn->query($sql);

if (!$result) {
    handleDatabaseError($conn); // Aufrufen der Fehlerbehandlungsfunktion
}
?>

In diesem Beispiel erstellen wir eine gehandelte Funktion für die Einführung, die detaillierte Fehlerinformationen formatiert und anzeigt. Wir haben auch ausgeführte SQL -Abfragen demonstriert, um Entwicklern dabei zu helfen, die Grundursache des Problems schnell zu finden.

4.. Log -Fehler zum Protokollieren

Zusätzlich zum Anzeigen von Fehlermeldungen auf der Seite ist es auch üblich, Fehlermeldungen für Protokolldateien aufzuzeichnen. Dadurch wird die direkte Belichtung sensibler Datenbankfehlermeldungen in Produktionsumgebungen vermieden.

 <?php
function logDatabaseError($conn) {
    $errorCode = $conn->errno;
    $errorMessage = $conn->error;
    $query = $conn->last_query;
    $timestamp = date("Y-m-d H:i:s");

    $logMessage = "[$timestamp] Fehlercode: $errorCode, Fehlermeldung: $errorMessage, Abfrage: $query\n";
    file_put_contents("database_errors.log", $logMessage, FILE_APPEND);
}

$sql = "SELECT * FROM non_existing_table"; // Fehlerabfrage

$result = $conn->query($sql);

if (!$result) {
    logDatabaseError($conn); // Protokollefehler zum Protokollieren
    handleDatabaseError($conn); // Prozess- und Zeigen Sie Fehler an
}
?>

Der obige Code zeigt, wie Fehlerinformationen in die Protokolldatei Database_errors.log geschrieben werden. Auf diese Weise können Entwickler alle Datenbankabfragen Fehler in der Protokolldatei des Servers anzeigen, ohne sie direkt dem Benutzer aussetzen zu müssen.

5. Zusammenfassung

Durch die Kombination von MySQLI :: $ Errno und MySQLI :: $ ERROR können wir ein detailliertes Datenbank -Abfrage -Fehleraufforderung erstellen, um den Entwicklern dabei zu helfen, schnell Probleme zu finden. Wir können auch die Robustheit des Systems durch Protokollierung weiter verbessern und sicherstellen, dass sensible Datenbankfehlerinformationen in der Produktionsumgebung nicht aufgedeckt werden.

Diese Fehlerbehandlungsmethode kann die Entwicklungs- und Debugging -Effizienz erheblich verbessern, insbesondere bei komplexen Datenbankoperationen. Wenn Sie die Sicherheit und Wartbarkeit Ihres Systems weiter verbessern möchten, können Sie auf dieser Grundlage weitere Log -Analyse- und Fehlerüberwachungsfunktionen hinzufügen.