Aktueller Standort: Startseite> Neueste Artikel> So drucken Sie mySQLI :: $ errno mit Fehlermeldung in PHP elegant aus

So drucken Sie mySQLI :: $ errno mit Fehlermeldung in PHP elegant aus

M66 2025-05-17

Wenn Sie MySQLI für Datenbankoperationen in PHP verwenden, stoßen Sie häufig auf Situationen, in denen Fehlermeldungen gedruckt werden müssen. Normalerweise enthält die MySQLI -Erweiterung Fehlercode ( MySQLI :: $ errno ) und Fehlerinformationen ( MySQLI :: $ -Fehler ), um uns beim Auftreten eines Fehlers unverzüglich Feedback -Probleme zu unterstützen. Aber wie drucken Sie diese Fehlermeldungen anmutig, um den Fehlerprotokoll klarer und einfacher zu debuggen? In diesem Artikel wird angezeigt, wie Sie MySQLI :: $ errno anmutig verwenden, um Fehlercodes und Fehlermeldungen in PHP zu drucken.

1. Basic MySQLI -Fehlerbehandlung

Schauen wir uns zunächst an, wie MySQLI für die Datenbankverbindung und die grundlegende Fehlerbehandlung in PHP verwendet werden. In MySQLi -Verbindungsobjekt können Fehlermeldungen und Fehlercodes über die MySQLI :: $ -Fehler und MySQLi :: $ errno -Eigenschaften erhalten werden.

Beispielcode:

 <?php
$host = 'localhost';
$username = 'root';
$password = 'password';
$database = 'test_db';

// erstellen MySQLi verbinden
$conn = new mysqli($host, $username, $password, $database);

// 检查verbinden是否成功
if ($conn->connect_error) {
    echo "verbinden失败: " . $conn->connect_error;
    exit();
}

// Eine Frage ausführen
$sql = "SELECT * FROM non_existing_table";
$result = $conn->query($sql);

// Überprüfen Sie, ob die Abfrage erfolgreich ist
if (!$result) {
    // Fehlercodes und Fehlermeldungen drucken
    echo "Fehlercode: " . $conn->errno . "<br>";
    echo "Fehlermeldung: " . $conn->error;
}

// 关闭verbinden
$conn->close();
?>

erklären:

  • Verwenden Sie Connect_error , um zu überprüfen, ob die Datenbankverbindung erfolgreich ist.

  • Verwenden Sie ERRNO und Fehler , um Fehlercodes und Fehlerinformationen zu erhalten.

  • Bei der Ausführung einer Abfrage werden die Details bei einem Fehler über Errno und Fehler ausgegeben.

2. Behandeln Sie und zeichnen Sie Fehlermeldungen anmutig und zeichnen Sie dies anmutig

Obwohl es effektiv ist, Fehlermeldungen direkt in Produktionsumgebungen auszugeben, möchten wir normalerweise Fehlerprotokolle protokollieren und vermeiden, dass sensible Informationen dem Endbenutzer vorliegen. In der tatsächlichen Entwicklung kann der elegante Fehlerbehebung den Entwicklern nicht nur dazu beitragen, schnell Probleme zu finden, sondern auch die Systemsicherheit und die Benutzererfahrung zu verbessern.

Beispiel: Protokollierungsfehlermeldung

Wir können die Funktion "ERROR_LOG () verwenden, um Fehlerinformationen in die Protokolldatei zu schreiben. Hier ist der verbesserte Code:

 <?php
$host = 'localhost';
$username = 'root';
$password = 'password';
$database = 'test_db';

$conn = new mysqli($host, $username, $password, $database);

if ($conn->connect_error) {
    // verwenden error_log 记录verbinden错误
    error_log("verbinden失败: " . $conn->connect_error, 3, "/var/log/php_errors.log");
    exit();
}

$sql = "SELECT * FROM non_existing_table";
$result = $conn->query($sql);

if (!$result) {
    // Protokoll -Fehlerprotokoll
    error_log("Fehlercode: " . $conn->errno . " Fehlermeldung: " . $conn->error, 3, "/var/log/php_errors.log");

    // 输出友好的Fehlermeldung
    echo "Operation fehlgeschlagen,Bitte versuchen Sie es später erneut。";
}

$conn->close();
?>

erklären:

  • Verwenden Sie ERROR_LOG () , um Fehlerinformationen in die angegebene Protokolldatei (z. B. /var/log/php_errors.log ) zu schreiben.

  • Zeigen Sie benutzerfreundliche Fehlermeldungen im Frontend an, um zu vermeiden, dass zu viele technische Details aufgedeckt werden.

  • Schreiben Sie Fehler in die Datei über die 3- Parameter-Einstellung.

3.. Elegant deaktivieren die Fehlerausgabe in der Produktionsumgebung

In Produktionsumgebungen deaktivieren wir normalerweise die PHP -Fehleranzeige und protokollieren sie im Protokoll. Um zu verhindern, dass sensible Fehlerinformationen den Endbenutzern ausgesetzt sind, können wir die Fehlerausgabe deaktivieren, indem wir php.ini oder den folgenden Code verwenden:

Beispielcode:

 <?php
// Fehleranzeige deaktivieren
ini_set('display_errors', '0');

// Aktivieren Sie die Fehlerprotokollierung
ini_set('log_errors', '1');
ini_set('error_log', '/var/log/php_errors.log');

// verbinden数据库并Eine Frage ausführen
$conn = new mysqli($host, $username, $password, $database);

if ($conn->connect_error) {
    // 记录verbinden错误
    error_log("verbinden失败: " . $conn->connect_error, 3, "/var/log/php_errors.log");
    exit();
}

$sql = "SELECT * FROM non_existing_table";
$result = $conn->query($sql);

if (!$result) {
    // 记录Fehlermeldung
    error_log("Fehlercode: " . $conn->errno . " Fehlermeldung: " . $conn->error, 3, "/var/log/php_errors.log");
    echo "Operation fehlgeschlagen,Bitte versuchen Sie es später erneut。";
}

$conn->close();
?>

erklären:

  • Ini_set ('display_errors', '0') : Fehleranzeige deaktivieren.

  • INI_SET ('log_errors', '1') : Fehlerprotokollierung aktivieren.

  • Die Fehlermeldung wird in der angegebenen Datei über die Funktion "ERROR_LOG () aufgezeichnet.

4. Verwenden Sie benutzerdefinierte Fehlerbehandlungsfunktionen

Um flexibler Fehler zu machen, können wir eine benutzerdefinierte Fehlerbehandlungsfunktion definieren, bei der MySQLI :: $ Errno und MySQLI :: $ ERROR einheitlich behandelt werden. Dies reduziert den doppelten Code und verbessert die Wartbarkeit des Codes.

Beispielcode:

 <?php
// Benutzerdefinierte Fehlerbehandlungsfunktionen
function handleMysqliError($conn) {
    // Protokollefehler zum Protokollieren
    error_log("Fehlercode: " . $conn->errno . " Fehlermeldung: " . $conn->error, 3, "/var/log/php_errors.log");

    // 显示友好的Fehlermeldung
    echo "Operation fehlgeschlagen,Bitte versuchen Sie es später erneut。";
}

// erstellen数据库verbinden
$conn = new mysqli($host, $username, $password, $database);

if ($conn->connect_error) {
    handleMysqliError($conn);
    exit();
}

$sql = "SELECT * FROM non_existing_table";
$result = $conn->query($sql);

if (!$result) {
    handleMysqliError($conn);
}

$conn->close();
?>

erklären:

  • Die Handlemysqlierror -Funktion umfasst die Logik der Fehlerbehandlung.

  • Wenn ein Fehler auftritt, vereinfacht das Aufrufen der Funktion nicht nur den Code, sondern stellt auch eine einheitliche Fehlerbehandlungsmethode sicher.

Abschluss

In PHP ist es sehr üblich, Fehlermeldungen mit MySQLI :: $ errno und MySQLi :: $ error zu drucken. Um den Fehler mit der Behandlung eleganter und sicherer zu gestalten, können wir die Robustheit und die Benutzererfahrung des Systems durch Protokollierung, Deaktivieren der Fehlerausgabe, Verwendung benutzerdefinierter Fehlerbehandlungsfunktionen usw. verbessern.

Ich hoffe, dieser Artikel hilft Ihnen, besser zu verstehen, wie Sie in PHP Fehler in Datenbankoperationen umgehen können. Wenn Sie Fragen haben, überlassen Sie bitte eine Nachricht, um zu diskutieren!