在 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中文網其他相關文章!