codeigniter sql更新代码触发器

jtw3ybtb  于 2022-12-07  发布在  其他
关注(0)|答案(6)|浏览(147)

我正在使用codeIgniter..我想更新一个表列is_closeid=$ticket_id我的table= 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'));
      }
yv5phkfx

yv5phkfx1#

首先使用get方法检查ticket_id是否存在。
另一件事是在模型中的函数中总是使用return,这样你就可以通过if(function_name){...}else{...}来检查它们
那么如果您的get方法正确返回了数据,请尝试

模型方法

public function set_closed($ticket_id){
    $this->db->set(array(
            'is_close'=>1
            ));  // pass fields in array
    $this->db->where('id',$ticket_id);
    $this->db->update('tbl_tickets'); // table name
    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 .
}
guz6ccqo

guz6ccqo2#

首先,在通过之前检查$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);
}

然后,给予你的表格结构。

0sgqnhkj

0sgqnhkj3#

就像这样

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

ibps3vxo4#

就像这样

**function edit($close,$id) {
$sql = "UPDATE tbl_tickets SET is_close= ?  WHERE id = ? ";
 $this->db->query($sql, array($close,$id));
}**
u59ebvdq

u59ebvdq5#

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

1)使用**$this-〉db-〉last_query()**函数来打印查询,使用这个我们可以确保我们变量有正确的值(不应该是空的或未定义的),使用这个我们也可以确保SQL查询是否有效。
2)如果SQL查询是有效的,那么打开phpmyadmin并在phpmyadmin中执行相同的查询,如果查询列或表名无效,它将返回错误。

使用此方法,这是交叉检查SQL查询问题的最佳方法。

我希望它能起作用。
谢谢

lrpiutwd

lrpiutwd6#

您正在尝试更新整数(INT)类型值,只需交叉检查列数据类型,如果是varchar,则必须将值放在单引号或双引号中。
就像这个$data=数组('is_close'=〉'1');

相关问题