1

我正在使用codeIgniter ..我想在我这样做时更新表格列 :is_close-id=$ticket_idtable= tbl_tickets.

$data=array(
            'is_close'=>1
            );
        $this->db->where('id',$title_id);
        $this->db->update('tbl_tickets',$data);

我也这样做了:-

$sql = "UPDATE tbl_tickets SET is_close={1} WHERE id='$title_id'";
$this->db->query($sql);

两者都不起作用,即我的表没有将值更新为 1,并且浏览器中也没有显示错误。:(

编辑:包括我的模型部分:

function setClosePost($title_id){
        $sql = "UPDATE tbl_tickets SET is_close=0 WHERE id='$title_id'";
        $this->db->query($sql);
        // $data=array(
        //     'is_close'=>1
        //     );
        // $this->db->where('id',$title_id);
        // $this->db->update('tbl_tickets',$data);
     }

我的控制器:-

function closePost(){
        $this->load->model('helpdesk_model');
        $this->helpdesk_model->setClosePost($this->input->post('title_id'));
      }
4

6 回答 6

0

试试这样

$sql = "UPDATE tbl_tickets SET is_close='1' WHERE id=".$title_id;
$this->db->query($sql);
于 2012-08-21T12:18:50.737 回答
0

试试这样

**function edit($close,$id) {
$sql = "UPDATE tbl_tickets SET is_close= ?  WHERE id = ? ";
 $this->db->query($sql, array($close,$id));
}**
于 2013-01-16T16:30:51.927 回答
0

首先,$title_id通过前检查:

var_dump($title_id);

然后,在更新之前和之后尝试“选择具有此 ID 的行”。

$query = $this->db->get_where('tbl_tickets', array('id' => $id));  

foreach ($query->result() as $row)
{
    var_dump($row->is_close);
}

$data=array(
            'is_close'=>1
            );
        $this->db->where('id',$title_id);
        $this->db->update('tbl_tickets',$data);

$query = $this->db->get_where('tbl_tickets', array('id' => $id));

foreach ($query->result() as $row)
{
    var_dump($row->is_close);
}

然后,给出你的表结构。

于 2012-07-18T14:39:26.330 回答
0

首先使用 get 方法检查是否ticket_id存在。

另一件事是始终在模型中的函数中使用 return 以便您可以通过if(function_name){...}else{...}

那么如果您的 get 方法正确返回数据,请尝试

模型方法

public function set_closed($ticket_id){
    $this-db->set(array(
            'is_close'=>1
            ));
    $this->db->where('id',$ticket_id);
    $this->db->update('tbl_tickets');
    return true;
}

然后在你的控制器中检查

if($this->Ticket_model->set_closed($ticket_id) == true){
    echo 'ticket set to closed correctly';
}else{
    echo 'there is some error on updating database'.$this->db->error(); // to checkout db error .
}
于 2018-07-25T14:26:12.603 回答
0

要处理此类错误,我的意思是如果数据库中没有发生反射,则使用以下步骤来解决此类错误。

1) 使用$this->db->last_query()函数打印查询,使用它我们可以确保我们的变量具有正确的值(不应该为空或未定义),使用它我们可以确保 SQL 查询也有效或无效.

2) 如果 SQL 查询有效,则打开 phpmyadmin 并在 phpmyadmin 中触发相同的查询,如果查询列或表名无效,它将返回错误。

使用这种方式,它是交叉检查我们的 SQL 查询问题的最佳方式。

我希望它会奏效。

谢谢

于 2018-08-25T10:57:03.890 回答
0

您正在尝试更新整数(INT)类型值,只需与您的列数据类型进行交叉检查,如果那是 varchar,那么您必须将值放在单引号或双引号中。

像这样 $data=array('is_close'=> '1');

于 2018-08-27T06:27:22.297 回答