在我的控制器中同样像这样
public function update(){
$a= $this->input->post('a');
$b= $this->input->post('b');
$c= $this->input->post('c');
$d= $this->input->post('d');
$e= $this->input->post('e');
$f= $this->input->post('f');
$this->db->trans_begin();
$array1= array(
'field1'=>$a,
'field2'=>$b
);
$array2= array(
'field1'=>$c,
'field2'=>$d
);
$array3= array(
'field1'=>$e,
'field2'=>$f
);
$this->db->update('table1',$array1);
$this->db->update('table2',$array2);
$this->db->update('table3',$array3);
if ($this->db->trans_status() === FALSE)
{
$this->db->trans_rollback();
}
else
{
$this->db->trans_commit();
}
if($this->db->affected_rows() > 0){
redirect('controller/list');
}
else{
redirect('controller/update');
}
}
仅当table3的字段更新时,它才会重定向到(控制器/列表),但如果table3的字段保持不变而其他表更新则重定向到(控制器/更新)本身,
有人可以帮忙吗?在此先感谢...
答案 0 :(得分:0)
添加一个变量来存储受影响的行,并在执行查询时对其进行更新。
public function update(){
// add a variable for affected rows
$affected_rows = 0;
$a= $this->input->post('a');
$b= $this->input->post('b');
$c= $this->input->post('c');
$d= $this->input->post('d');
$e= $this->input->post('e');
$f= $this->input->post('f');
$this->db->trans_begin();
$array1= array(
'field1'=>$a,
'field2'=>$b
);
$array2= array(
'field1'=>$c,
'field2'=>$d
);
$array3= array(
'field1'=>$e,
'field2'=>$f
);
$this->db->update('table1',$array1);
// increment affected rows counter
$affected_rows = $affected_rows + $this->db->affected_rows();
$this->db->update('table2',$array2);
// increment affected rows counter
$affected_rows = $affected_rows + $this->db->affected_rows();
$this->db->update('table3',$array3);
// increment affected rows counter
$affected_rows = $affected_rows + $this->db->affected_rows();
if ($this->db->trans_status() === FALSE)
{
$this->db->trans_rollback();
}
else
{
$this->db->trans_commit();
}
if($affected_rows > 0){
redirect('controller/list');
}
else{
redirect('controller/update');
}
}
答案 1 :(得分:0)
后来我尝试了这个
if ($this->db->trans_status() === FALSE)
{
$this->db->trans_rollback();
}
else
{
$this->db->trans_commit();
}
if ($this->db->trans_commit()) {
redirect('controller/list');
} else {
redirect('controller/update');
}