ホームページ >バックエンド開発 >PHPチュートリアル >CodeIgniter でクエリの成功を判断する方法: 更新クエリが何も返さないのはなぜですか?

CodeIgniter でクエリの成功を判断する方法: 更新クエリが何も返さないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-31 03:02:02970ブラウズ

How to Determine Query Success in CodeIgniter: Why My Update Query Returns Nothing?

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。