SQL更新布尔值

时间:2012-11-21 15:12:09

标签: php mysql codeigniter

我正在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 个答案:

答案 0 :(得分:1)

感谢所有帮助人员,但事实证明我是一个白痴并且没有意识到将数组传递给该函数。

答案 1 :(得分:-1)

对于更新,我认为您应该使用exec方法:

$affected_rows = $this->db->exec($sql);

答案 2 :(得分:-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();            
}

得到here

的提示

答案 3 :(得分:-3)

将值设置为TRUE而不是'1'

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();            
}