我正在使用codeIgniter ..
我希望在is_close
的{{1}}时更新表格列id=$ticket_id
我这样做: -
table= tbl_tickets.
我也这样做了: -
$data=array(
'is_close'=>1
);
$this->db->where('id',$title_id);
$this->db->update('tbl_tickets',$data);
两者都不起作用,即我的表没有将值更新为1,并且broswer中也没有显示错误。 :(
已编辑:包含我的模型部分:
$sql = "UPDATE tbl_tickets SET is_close={1} WHERE id='$title_id'";
$this->db->query($sql);
我的控制器: -
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);
}
答案 0 :(得分: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);
}
然后,给你的表结构。
答案 1 :(得分:0)
试试这个
$sql = "UPDATE tbl_tickets SET is_close='1' WHERE id=".$title_id;
$this->db->query($sql);
答案 2 :(得分:0)
试试这个
**function edit($close,$id) {
$sql = "UPDATE tbl_tickets SET is_close= ? WHERE id = ? ";
$this->db->query($sql, array($close,$id));
}**
答案 3 :(得分: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 .
}
答案 4 :(得分:0)
要处理此类错误,我的意思是如果数据库中未发生反射,请使用以下步骤解决此类错误。
1)使用 $ this-> db-> last_query()函数打印查询,使用此函数可以确保变量具有正确的值(不应为null或未定义),并使用可以确保SQL查询也是有效的。
2)如果SQL查询有效,则打开phpmyadmin并将相同的查询引发到phpmyadmin中,如果查询列或表名无效,它将返回错误。
使用这种方法,是交叉检查我们的SQL查询问题的最佳方法。
我希望它能起作用。
谢谢
答案 5 :(得分:0)
您正尝试更新integer(INT)类型的值,只需对您的列数据类型进行交叉检查(如果它是varchar),则必须将值放在单引号或双引号中。
赞这个 $ data = array('is_close'=>'1');