在 Codeigniter 中检测查询成功
执行数据库查询时,确定它们是否成功至关重要。在您的情况下,删除控制器方法中的更新查询不会返回任何内容,即使在更改数据库之后也是如此。要解决此问题,请遵循以下准则:
1.增强控制器功能(软删除)
出于安全原因,请避免通过 URL 传递用户 ID。相反,在数据写入期间使用 $_POST 传输数据。修改后的控制器函数应如下所示:
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.增强模型方法
仅在模型中执行查询。多点检查查询过程,因为查询可以没有语法错误,但仍然不会对数据库进行任何更改。
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; }
通过遵循这些准则,您可以有效地确定数据库查询是否成功并处理相应的成功和不成功的场景。
以上是如何确定 CodeIgniter 中的查询是否成功:为什么我的更新查询不返回任何内容?的详细内容。更多信息请关注PHP中文网其他相关文章!