1

Code Igniter でアプリケーションを構築しています。データベース内のブール値セルの更新で問題が発生しています。これが私の声明です:

public function updateHide($id) {
        $sql = "UPDATE holiday_request SET hide = '1' WHERE holiday_request_id = " . (int)$id;
        $this->db->query($sql);
        echo $this->db->affected_rows();            
    }

影響を受けた行関数を使用して、有効な行に影響を与えたことを Firebug ですばやく確認しています。SQL ステートメントを印刷し、PHP Myadmin でテストしたところ、正常に動作しました。つまり、ID が正しく、データベースに有効な行があることを意味します。テーブルが更新されない理由を一生理解できません。誰でも私を正しい方向に向けることができますか?前もって感謝します!!

4

4 に答える 4

1

すべての助けてくれてありがとう、しかし、私はばかで、気づかずに関数に配列を渡していたことがわかりました。

于 2012-11-22T14:51:31.873 に答える
-1

exec更新については、代わりに次の方法を使用する必要があると思います。

$affected_rows = $this->db->exec($sql);
于 2012-11-21T15:26:35.260 に答える
-1

以下のように、データベースを関数にロードしてみてください

public function updateHide($id) {
  $this->load->database();
  $sql = "UPDATE holiday_request SET hide = '1' WHERE holiday_request_id = " . (int)$id;
  $this->db->query($sql);
  echo $this->db->affected_rows();            
}

ここからヒントを得た

于 2012-11-21T15:27:32.650 に答える
-3

値を「1」ではなく TRUE に設定します

public function updateHide($id) {
    $sql = "UPDATE holiday_request SET hide = TRUE WHERE holiday_request_id = " . (int)$id;
    $this->db->query($sql);
    echo $this->db->affected_rows();            
}
于 2012-11-21T15:14:53.660 に答える