Position actuelle: Accueil> Derniers articles> Écrire des affirmations d'erreur de base de données à l'aide de MySQLI_STMT :: $ Erreur

Écrire des affirmations d'erreur de base de données à l'aide de MySQLI_STMT :: $ Erreur

gitbox 2025-05-28

Les opérations de la base de données sont une partie inévitable du développement d'applications PHP, en particulier lors de l'interaction avec une base de données MySQL. Qu'il s'agisse d'insérer, de mettre à jour, de supprimer ou de remettre en question des données, toute erreur dans n'importe quelle étape peut entraîner une défaillance de l'application ou une incohérence des données. Afin d'assurer l'exécution fluide des opérations de base de données, nous avons besoin d'un mécanisme efficace de gestion des erreurs.

MySQLI_STMT :: $ L'erreur est une propriété très utile fournie par l'extension PHP MySQLI, qui nous permet d'obtenir des informations d'erreur qui se sont produites dans la dernière opération de base de données. Dans cet article, nous discuterons de la façon d'utiliser MySQLI_STMT :: $ ERROR pour rédiger des affirmations d'erreur de base de données et gérer efficacement les erreurs dans les opérations de base de données.

1. Connectez-vous à la base de données

Avant de commencer à écrire des opérations de base de données, nous devons d'abord nous connecter à la base de données MySQL via MySQLI . Nous pouvons nous connecter via MySQLI_Connect () ou une méthode orientée objet.

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

// Créer des connexions à l&#39;aide d&#39;une approche orientée objet
$mysqli = new mysqli($host, $user, $password, $database);

// Vérifiez si la connexion réussit
if ($mysqli->connect_error) {
    die("Échec de la connexion: " . $mysqli->connect_error);
}
?>

2. Utilisez MySQLI_STMT pour exécuter la requête SQL

Une fois que nous nous connectons avec succès à la base de données, l'étape suivante consiste à préparer la requête SQL. Pour une gestion efficace des erreurs, il est recommandé d'utiliser des instructions préparées. Les déclarations de prétraitement empêchent non seulement l'injection de SQL, mais améliorent également l'efficacité de la requête.

Voici comment utiliser MySQLI_STMT pour exécuter les requêtes SQL et gérer les erreurs possibles:

 <?php
$sql = "INSERT INTO users (username, email) VALUES (?, ?)";

// Utiliser des déclarations de prétraitement
$stmt = $mysqli->prepare($sql);

if ($stmt === false) {
    die("Erreur de déclaration de prétraitement: " . $mysqli->error);
}

// Lier les paramètres
$username = 'john_doe';
$email = '[email protected]';
$stmt->bind_param('ss', $username, $email);

// Instruction d&#39;exécution
$stmt->execute();

// Vérifiez les résultats d&#39;exécution
if ($stmt->error) {
    die("Erreur d&#39;exécution: " . $stmt->error);
} else {
    echo "Insertion de données avec succès!";
}
?>

3. Affirmation d'erreur et gestion des exceptions

Pendant le développement, les affirmations d'erreurs sont très importantes et nous aident à localiser et à résoudre rapidement les problèmes. Nous pouvons combiner MySQLI_STMT :: $ Erreur pour faire des affirmations d'erreur. Lorsque l'opération de la base de données échoue, arrêtez immédiatement le programme et sortiez des informations d'erreur spécifiques.

 <?php
function assertQuerySuccess($stmt) {
    if ($stmt->error) {
        throw new Exception("Le fonctionnement de la base de données a échoué: " . $stmt->error);
    }
}

try {
    $sql = "INSERT INTO users (username, email) VALUES (?, ?)";
    $stmt = $mysqli->prepare($sql);
    assertQuerySuccess($stmt); // S&#39;il y a une erreur,faire une exception

    $username = 'jane_doe';
    $email = '[email protected]';
    $stmt->bind_param('ss', $username, $email);
    $stmt->execute();

    assertQuerySuccess($stmt); // 再次Vérifiez les résultats d&#39;exécution
    echo "Insertion de données avec succès!";
} catch (Exception $e) {
    echo "erreur: " . $e->getMessage();
}
?>

Dans le code ci-dessus, la fonction ASSERTQUERYSUCCESS () vérifie si l'opération de base de données est réussie. Si l'opération échoue, il lance une exception, que nous pouvons attraper et traiter en conséquence si nécessaire.

4. Gérer différents types d'erreur

Parfois, il peut y avoir de nombreuses raisons pour lesquelles les opérations de base de données échouent. Par exemple, il pourrait s'agir d'une erreur de syntaxe SQL, d'un problème de connexion de base de données ou d'une panne de serveur. En vérifiant le message d'erreur dans la propriété MySQLI_STMT :: $ Error , nous pouvons prendre des mesures correspondantes en fonction de différents types d'erreur.

 <?php
if ($stmt->error) {
    // 处理特定的erreur
    switch ($stmt->errno) {
        case 1062:
            echo "erreur:Entrées en double!";
            break;
        case 1049:
            echo "erreur:Base de données inconnue!";
            break;
        default:
            echo "数据库erreur: " . $stmt->error;
    }
}
?>

5. Résumé

L'utilisation d'erreur MySQLI_STMT :: $ pour le traitement des erreurs de base de données peut nous aider efficacement à localiser les problèmes et à nous assurer que nos applications peuvent répondre rapidement et prendre des mesures appropriées lorsque l'opération de base de données échoue. Grâce à une bonne affirmation d'erreur et à des mécanismes de gestion des exceptions, la robustesse et la maintenabilité du programme ont été considérablement améliorées.

Dans cet article, nous décrivons comment utiliser MySQLI_STMT :: $ Erreur pour les affirmations d'erreur, comment gérer les erreurs courantes dans les opérations de base de données et améliorer davantage la robustesse du code grâce à la gestion des exceptions. J'espère que cet article vous aidera à mieux gérer les erreurs liées à la base de données dans votre projet PHP.