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'); } }
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; }
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!