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 中国語 Web サイトの他の関連記事を参照してください。