Maison  >  Article  >  développement back-end  >  Comment déterminer le succès d'une requête dans CodeIgniter : pourquoi ma requête de mise à jour ne renvoie rien ?

Comment déterminer le succès d'une requête dans CodeIgniter : pourquoi ma requête de mise à jour ne renvoie rien ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 03:02:02903parcourir

How to Determine Query Success in CodeIgniter: Why My Update Query Returns Nothing?

Détection du succès des requêtes dans Codeigniter

Lors de l'exécution de requêtes de base de données, il est crucial de déterminer si elles réussissent ou non. Dans votre cas, la requête de mise à jour dans la méthode du contrôleur de suppression ne renvoie rien, même après des modifications apportées à la base de données. Pour résoudre ce problème, suivez ces directives :

1. Fonction de contrôleur améliorée (suppression logicielle)

Évitez de transmettre l'ID utilisateur via l'URL pour des raisons de sécurité. Utilisez plutôt $_POST pour transférer des données pendant l'écriture de données. La fonction révisée du contrôleur devrait ressembler à ceci :

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

2. Méthode de modèle améliorée

Effectuez des requêtes uniquement dans le modèle. Vérifiez le processus de requête à plusieurs moments, car une requête ne peut contenir aucune erreur de syntaxe mais n'apporte toujours aucune modification à la base de données.

public function update(int $userId, array $newData): int
{
    // Prevent modifying the user_id column
    unset($newData['user_id']);

    if ($this->db->update('user_tablename', $newData, ['user_id' => $userId])) {
        $affectedRows = $this->db->affected_rows();
        if ($affectedRows) {
            // Log successful changes if applicable
        }
        return $affectedRows;
    }
    return 0;
}

En suivant ces directives, vous pouvez déterminer efficacement le succès de vos requêtes de base de données et gérer des scénarios à la fois réussis et infructueux en conséquence.

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!

Déclaration:
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