我是codeigniter的新手。
我有以下查询,每个查询都有不同的表名和不同的where条件。
我可以在单个查询中进行此查询,还是执行查询的正确方法。 我必须执行所有这些查询。
$q = $this->db->where('id', $st)->update('st_info', array(
'status' => 0,
'updated_time' => $this->info_model->getTime(),
'updated_ip' => $this->info_model->getIP()
));
$q = $this->db->where('verid', $vid)->update('st_version', array(
'status' => 0,
'updated_time' => $this->info_model->getTime(),
'updated_ip' => $this->info_model->getIP()
));
$q = $this->db->where('id', $id)->update('st_raw', array(
'status' => 0,
'updated_time' => $this->info_model->getTime(),
'updated_ip' => $this->info_model->getIP()
));
答案 0 :(得分:2)
由于您对所有表使用相同的列,我更喜欢使用以下方法
$data = array(
'status' => 0,
'updated_time' => $this->info_model->getTime(),
'updated_ip' => $this->info_model->getIP()
);
$q = $this->db->where('id', $st)->update('st_info', $data);
$q = $this->db->where('verid', $vid)->update('st_version', $data);
$q = $this->db->where('id', $id)->update('st_raw', $data);
答案 1 :(得分:0)
这是正确的,你无法将所有这些结合到一个查询中。
答案 2 :(得分:0)
试试这个:
$data=array(
'status' => 0,
'updated_time' => $this->info_model->getTime(),
'updated_ip' => $this->info_model->getIP()
));
$this->db->where('id',$st);
$this->db->update('st_info', $data);
$this->db->where('verid',$vid);
$this->db->update('st_version', $data);
$this->db->where('id',$id);
$this->db->update('st_raw', $data);
答案 3 :(得分:0)
创建单个功能
public function update($table,$where,$data)
{
$this->db->where($where);
$this->db->update($table,$data);
}
现在从控制器
中调用此函数function update_call()
{
$data['status'] = 0;
$data['updated_time'] = $this->info_model->getTime();
$data['updated_ip'] = $this->info_model->getIP();
$where['id'] = $st;
$table = 'st_info';
$this->model_name->update($table,$where,$data);
unset($where);
unset($table);
$where['verid'] = $vid;
$table = 'st_version';
$this->model_name->update($table,$where,$data);
unset($where);
unset($table);
$where['id'] = $id;
$table = 'st_raw';
$this->model_name->update($table,$where,$data);
}