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!