Position actuelle: Accueil> Derniers articles> Combinaison $ errno et pack de langues pour les invites d'erreur de localisation

Combinaison $ errno et pack de langues pour les invites d'erreur de localisation

M66 2025-05-29


Comment combiner MySqli :: $ Errno et le package linguistique pour implémenter des invites d'erreur de base de données localisées?

La gestion des erreurs des opérations de base de données est essentielle lors du développement d'applications Web. Afin d'améliorer l'expérience utilisateur, il est souvent nécessaire d'afficher des messages d'erreur conviviaux en fonction de différents localités. PHP fournit une extension MySQLI pour interagir avec la base de données MySQL, et la propriété MySQLI :: $ Errno peut nous aider à obtenir des codes d'erreur, renvoyant ainsi les informations d'erreur correspondantes en fonction du code d'erreur.

Cet article présentera comment combiner le package MySQLI :: $ Errno et Language pour implémenter les invites d'erreur de base de données de localisation.

1. Idées de base

Tout d'abord, l'extension MySQLI de PHP fournit une propriété MySQLI :: $ Errno , qui stocke le code d'erreur pour l'erreur MySQL la plus récente. Si nous pouvons trouver les invites d'erreur localisées correspondantes en fonction du code d'erreur, notre application peut être plus utilisable et peut renvoyer les messages d'erreur appropriés en fonction des différents endroits.

Lorsque vous l'implémentez, nous avons généralement besoin des étapes suivantes:

  1. Capturez les erreurs de base de données et obtenez le code d'erreur MySqli :: $ errno .

  2. Obtenez des informations d'erreur pour la langue correspondante via le pack de langues.

  3. Affichez le message d'erreur de localisation à l'utilisateur.

2. Créez un package de langue

Tout d'abord, nous devons créer un package de langue. Supposons que nous ayons deux langues: l'anglais et le chinois. Nous pouvons stocker ces informations dans un tableau PHP pour faciliter les recherches et références ultérieures.

 // en.php (Pack de langue anglaise)
return [
    '1045' => 'Access denied for user',
    '1146' => 'Table doesn\'t exist',
    '2002' => 'Connection refused',
    // Plus de codes d'erreur et des messages d'erreur correspondants peuvent être ajoutés
];

// zh.php (Pack de langue chinoise)
return [
    '1045' => 'Accès aux utilisateurs refusée',
    '1146' => 'Le tableau n'existe pas',
    '2002' => 'Connexion rejetée',
    // Plus de codes d'erreur et des messages d'erreur correspondants peuvent être ajoutés
];

Ce qui précède sont les deux packs de langue que nous avons supposés (anglais et chinois). Dans les applications réelles, vous pouvez avoir plus de packages de langues ou utiliser JSON, XML et d'autres formats pour stocker les données linguistiques.

3. Combiné avec mysqli :: $ errno pour implémenter des invites d'erreur de localisation

Lorsqu'une erreur de base de données se produit, nous pouvons obtenir le code d'erreur via mysqli :: $ errno , puis obtenir les informations d'invite d'erreur correspondantes à partir du package de langue en fonction du code d'erreur.

 <?php

// Packs de langage de chargement
$lang = 'zh'; // Ici, vous pouvez sélectionner dynamiquement en fonction des paramètres de la langue de l&#39;utilisateur
$langFile = $lang . '.php';
$errorMessages = include($langFile);

// créer MySQLi connecter
$mysqli = new mysqli("localhost", "username", "password", "database");

// 检查connecter
if ($mysqli->connect_error) {
    $errno = $mysqli->connect_errno;  // 获取connecter错误码
    echo '数据库connecter失败: ' . $errorMessages[$errno] ?? 'Erreur inconnue';
    exit();
}

// Effectuer des opérations de requête
$result = $mysqli->query("SELECT * FROM non_existing_table");

if (!$result) {
    // Obtenez le code d&#39;erreur et sorti les informations d&#39;erreur localisées
    $errno = $mysqli->errno;
    echo 'La requête a échoué: ' . $errorMessages[$errno] ?? 'Erreur inconnue';
}

?>

Dans cet exemple, lorsque la connexion de la base de données ou l'opération de requête échoue, MySQLI :: $ Errno renvoie le code d'erreur correspondant, puis nous obtenons et affichons le message d'erreur correspondant via le package de langue.

4. Gestion des erreurs plus complexes: ajouter des messages d'erreur personnalisés

Parfois, il peut y avoir des cas où il n'y a pas de code d'erreur clair correspondant aux messages localisés. Dans ce cas, nous pouvons fournir un message d'erreur par défaut pour chaque code d'erreur et le personnaliser davantage en fonction de la situation spécifique.

 <?php

// Message d&#39;erreur par défaut
$defaultMessages = [
    '1045' => 'Access denied for user',
    '1146' => 'Table doesn\'t exist',
    '2002' => 'Connection refused',
];

// Obtenir un message d&#39;erreur localisé,Sinon,Utilisez le message par défaut
$errorMessage = $errorMessages[$errno] ?? $defaultMessages[$errno] ?? 'An unexpected error occurred.';

// Message d&#39;erreur de sortie
echo 'Erreur de base de données: ' . $errorMessage;

?>

De cette façon, quelle que soit l'erreur, nous pouvons nous assurer que nous fournissons une invite d'erreur appropriée pour éviter d'afficher les informations d'origine de l'erreur de la base de données et de causer des problèmes à l'utilisateur.

5. Résumé

La combinaison des packages MySqli :: $ Errno et de la langue pour réaliser des invites d'erreur de base de données localisées est un moyen efficace d'améliorer l'expérience utilisateur et le support d'internationalisation. Vous pouvez implémenter cette fonction dans votre application via les étapes suivantes:

  • Capturez MySqli :: $ Errno Code d'erreur.

  • Créez un package linguistique et des codes d'erreur de carte pour les invites d'erreur localisées.

  • Selon l'environnement local de l'utilisateur actuel, le pack de langues correspondant est chargé dynamiquement.

Cette méthode garantit que votre application fournit toujours des informations d'erreur claires et faciles à comprendre lors de la confrontation des utilisateurs dans différentes langues.