Maison > développement back-end > tutoriel php > 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
Libérer: 2024-10-31 03:02:02
original
963 Les gens l'ont consulté

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');
    }
}
Copier après la connexion

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;
}
Copier après la connexion

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!

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