0

リンクをクリックすると入力されるフォームがあり、ユーザーはデータを更新し、それらのフィールドに加えられた変更を保存できるとします。

$data = array('somevalue, 'somevalue');            
$this->db->where('id', $this->input->post('id'))->update('links', $data);

            if($this->db->affected_rows() == 1){
                return TRUE;
            }else{
                return FALSE;
            }

そして、いくつかの変更を加えて保存すると、 が返されるため、すべて正常に動作しTRUEますaffected_rows() == 1。何も変更せずに保存するとどうなりますか? 影響を受ける行はなく、 が返されFALSEます。

この問題を解決する適切な方法は何でしょうか? 主な問題は、成功メッセージが返されたときにのみ表示されることTRUEです。したがって、何も変更せずに保存ボタンをクリックすると、問題が発生します (つまり、メッセージが表示されません)。

4

1 に答える 1

0

true を返すだけです。

DB への接続に問題がある場合は、アプリケーションがその時点に到達する前にエラー メッセージが表示されます。

冗長コードです。

あなたはただできるはずです

return $this->db->where('id', $this->input->post('id'))->update('links', $data);

ただし、どのシナリオで codeigniter が false を返すかを確認する必要があります。

PS なぜ codeigniter でフォーム検証を使用して、モデルに移動する前にフィールドが空かどうかを確認しないのですか?

于 2013-01-25T15:46:22.910 に答える