使用codeigniter更新数据库中的tinyint字段

时间:2013-12-14 10:23:42

标签: mysql codeigniter sql-update tinyint

我正在尝试在点击按钮时将名为inactive的tinyint字段从0更新为1。我确定我得到了正确的ID,所以没有问题,但我无法更新该字段。

这是我的视图代码。

<a id="deactivate" role="button" href=<?php echo site_url('user/deactivate'); ?>>Deactivate</a>
<script>
$(document).ready(function() {
$('a#deactivate').bind('click',function(event){
      if (confirm("Are you sure you want to deactivate " + id_deactivate + "?")) {
            url_deactivate = ('<?php echo site_url('user/deactivate'); ?>');
                $('a#deactivate').attr('href', function() {
                    var newURL0 =  url_deactivate + "/" + id_deactivate;
                    console.log(newURL0);
                    return newURL0;
                })
          } else{
                event.preventDefault()
          }
    });
});
</script>

为模型:

public function deactivateUser($id, $data){
        if($this->db->update('user', "`inactive` = '".$data."'", "`user_id` = '".$id."'")){
            return true;
        }
        return false;
    }

对于控制器:

public function deactivate($id){
    $this->session->set_userdata('page', 'user'); 
    $this->session->set_userdata('action', 'view');
    $data['inactive'] = 1;
    $this->user_model->deactivateUser($id, $data);
    redirect('user');
}

我很确定问题出在控制器上,但我不知道如何修复它。谁能帮我?提前谢谢。

2 个答案:

答案 0 :(得分:1)

在模型中

试试这个

    $this->db->where('user_id', $id);
    $update = $this->db->update('user', $data); 
    if($update) return TRUE;
    return FALSE:

查看更多信息here

答案 1 :(得分:0)

不是在确认JS对话框之后设置href值(实际上是非常奇怪的方式),只需在HTML中设置href即可。

然后用

启动JS确认
return (confirm("Are you sure you want to deactivate " + id_deactivate + "?")) ? true : false;

如果您返回true(当用户接受确认时),则让默认操作运行其路线,该路线跟随href中的链接。如果用户不接受确认,则取消默认操作并返回false,并且没有任何反应。