在 Codeigniter 中验证查询执行是否成功
在 CodeIgniter 中,验证数据库查询是否已成功执行对于有效处理数据库操作至关重要。
控制器逻辑
原始控制器方法根据 $user_id 处理用户的删除。但是,它无法正确验证查询是否成功。
出于安全原因,修订后的控制器方法可以使用 $_POST 来接收用户 ID。它还采用更简洁的条件块来检查更新是否成功:
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'); } }
模型注意事项
模型应该负责查询执行和验证结果。在这种情况下, update() 方法检查是否有任何行受到查询的影响:
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; }
此方法确保控制器可以通过验证查询返回的受影响行数来确定更新是否成功。模型。任何语法错误或空查询结果都会显而易见,确保向用户提供准确的反馈。
以上是如何在 CodeIgniter 中验证数据库查询执行是否成功?的详细内容。更多信息请关注PHP中文网其他相关文章!