Comment vérifier l'exécution réussie d'une requête de base de données dans CodeIgniter ?

Patricia Arquette
Libérer: 2024-10-30 17:49:31
original
369 Les gens l'ont consulté

How to Verify Successful Database Query Execution in CodeIgniter?

Vérification de l'exécution réussie d'une requête dans Codeigniter

Dans CodeIgniter, vérifier si une requête de base de données a été exécutée avec succès est crucial pour gérer efficacement les opérations de base de données.

Logique du contrôleur

La méthode du contrôleur d'origine gère la suppression d'un utilisateur en fonction de $user_id. Cependant, il ne vérifie pas correctement le succès de la requête.

Une méthode de contrôleur révisée pourrait utiliser $_POST pour recevoir l'ID utilisateur pour des raisons de sécurité. Il utilise également un bloc de conditions plus concis pour vérifier le succès de la mise à jour :

public function softDeleteUser(): void
{
    $userId = $this->input->post('user_id');
    if ($userId) {
        $affectedRows = $this->Crm_user_model->update($userId, ['deleted' => true]);
        if ($affectedRows > 0) {
            add_flash_message('info', 'Soft deleted user');
        } else {
            add_flash_message('alert', 'Failed to soft delete user');
        }
    } else {
        add_flash_message('alert', 'Required data not supplied');
    }
}
Copier après la connexion

Considérations sur le modèle

Le modèle doit être responsable de l'exécution des requêtes et de la validation des résultats. . Dans ce cas, la méthode update() vérifie si des lignes ont été affectées par la requête :

public function update(int $userId, array $newData): int
{
    // Restrict user_id modification
    unset($newData['user_id']);

    $this->db->update('user_tablename', $newData, ['user_id' => $userId]);

    $affectedRows = $this->db->affected_rows();
    if ($affectedRows) {
        // Optional: Log user change
    }
    return $affectedRows;
}
Copier après la connexion

Cette approche garantit que le contrôleur peut déterminer si la mise à jour a réussi en vérifiant le nombre de lignes affectées renvoyé par le modèle. Toutes les erreurs de syntaxe ou les résultats de requête vides seront facilement visibles, garantissant ainsi un retour précis à l'utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal