Wie kombinieren Sie MySQLI :: $ errno und ein Sprachpaket, um lokalisierte Datenbankfehleranforderungen zu implementieren?
Die Fehlerbehandlung von Datenbankvorgängen ist bei der Entwicklung von Webanwendungen unerlässlich. Um die Benutzererfahrung zu verbessern, müssen häufig freundliche Fehlermeldungen auf der Grundlage verschiedener Orte angezeigt werden. PHP bietet MySQLI -Erweiterung für die Interaktion mit der MySQL -Datenbank, und die Eigenschaft von MySQLI :: $ errno kann uns helfen, Fehlercodes zu erhalten, wodurch die entsprechenden Fehlerinformationen basierend auf dem Fehlercode zurückgegeben werden.
In diesem Artikel wird vorgestellt, wie Sie MySQLI :: $ Errno und Sprachpaket kombinieren, um Lokalisierungsdatenbankfehleranforderungen zu implementieren.
Erstens bietet die MySQLI -Erweiterung von PHP eine MySQLI :: $ errno -Eigenschaft, die den Fehlercode für den neuesten MySQL -Fehler speichert. Wenn wir die entsprechenden lokalisierten Fehlereingaben basierend auf dem Fehlercode finden können, kann unsere Anwendung nutzbarer sein und entsprechende Fehlermeldungen gemäß verschiedenen Orten zurückgeben.
Bei der Implementierung benötigen wir normalerweise die folgenden Schritte:
Erfassen Sie Datenbankfehler und erhalten Sie Fehlercode MySQLI :: $ errno .
Erhalten Sie Fehlerinformationen für die entsprechende Sprache über das Sprachpaket.
Zeigen Sie dem Benutzer die Lokalisierungsfehlermeldung an.
Zunächst müssen wir ein Sprachpaket erstellen. Angenommen, wir haben zwei Sprachen: Englisch und Chinesisch. Wir können diese Informationen in einem PHP -Array speichern, um nachfolgende Suchvorgänge und Referenzen zu erleichtern.
// en.php (Englisch Sprachpaket)
return [
'1045' => 'Access denied for user',
'1146' => 'Table doesn\'t exist',
'2002' => 'Connection refused',
// Weitere Fehlercodes und entsprechende Fehlermeldungen können hinzugefügt werden
];
// zh.php (Chinesisches Sprachpaket)
return [
'1045' => 'Benutzerzugriff verweigert',
'1146' => 'Die Tabelle existiert nicht',
'2002' => 'Verbindung abgelehnt',
// Weitere Fehlercodes und entsprechende Fehlermeldungen können hinzugefügt werden
];
Die oben genannten sind die beiden Sprachpakete, die wir angenommen haben (Englisch und Chinesisch). In tatsächlichen Anwendungen haben Sie möglicherweise mehr Sprachpakete oder verwenden JSON, XML und andere Formate, um Sprachdaten zu speichern.
Wenn ein Datenbankfehler auftritt, können wir den Fehlercode über MySQLI :: $ errno abrufen und dann die entsprechenden Fehlereingabeinformationen aus dem Sprachpaket basierend auf dem Fehlercode abrufen.
<?php
// Sprachpackungen laden
$lang = 'zh'; // Hier können Sie dynamisch gemäß den Spracheinstellungen des Benutzers auswählen
$langFile = $lang . '.php';
$errorMessages = include($langFile);
// erstellen MySQLi verbinden
$mysqli = new mysqli("localhost", "username", "password", "database");
// 检查verbinden
if ($mysqli->connect_error) {
$errno = $mysqli->connect_errno; // 获取verbinden错误码
echo '数据库verbinden失败: ' . $errorMessages[$errno] ?? 'Unbekannter Fehler';
exit();
}
// Abfragebetriebe durchführen
$result = $mysqli->query("SELECT * FROM non_existing_table");
if (!$result) {
// Rufen Sie den Fehlercode ab und geben Sie lokalisierte Fehlerinformationen aus
$errno = $mysqli->errno;
echo 'Abfrage fehlgeschlagen: ' . $errorMessages[$errno] ?? 'Unbekannter Fehler';
}
?>
In diesem Beispiel wird MySQLI :: $ errno den entsprechenden Fehlercode zurückgibt und dann die entsprechende Fehlermeldung über das Sprachpaket erhalten und dann die entsprechende Fehlermeldung angezeigt.
Manchmal gibt es Fälle, in denen kein klarer Fehlercode vorhanden ist, der lokalisierten Nachrichten entspricht. In diesem Fall können wir eine Standardfehlermeldung für jeden Fehlercode angeben und diese nach der spezifischen Situation weiter anpassen.
<?php
// Standardfehlermeldung
$defaultMessages = [
'1045' => 'Access denied for user',
'1146' => 'Table doesn\'t exist',
'2002' => 'Connection refused',
];
// Lokalisierte Fehlermeldung erhalten,Wenn nicht,Verwenden Sie die Standardnachricht
$errorMessage = $errorMessages[$errno] ?? $defaultMessages[$errno] ?? 'An unexpected error occurred.';
// Ausgabefehlermeldung
echo 'Datenbankfehler: ' . $errorMessage;
?>
Auf diese Weise können wir unabhängig von einem Fehler sicherstellen, dass wir eine geeignete Fehleraufforderung bereitstellen, um zu vermeiden, dass die ursprünglichen Informationen des Datenbankfehlers angezeigt werden und dem Benutzer Probleme verursachen.
Die Kombination von MySQLI :: $ Errno und Sprachpaketen, um lokalisierte Datenbankfehleranforderungen zu erreichen, ist ein effektives Mittel zur Verbesserung der Benutzererfahrung und der Internationalisierungsunterstützung. Sie können diese Funktion in Ihrer Anwendung in den folgenden Schritten implementieren:
Erfassen Sie MySQLI :: $ Errno -Fehlercode.
Erstellen Sie ein Sprachpaket und kartieren Sie Fehlercodes für lokalisierte Fehleranforderungen.
Gemäß der Umgebung des aktuellen Gebietsschemas wird das entsprechende Sprachpaket dynamisch geladen.
Diese Methode stellt sicher, dass Ihre Anwendung immer klare und leicht verständliche Fehlerinformationen bietet, wenn Benutzer in verschiedenen Sprachen konfrontiert sind.