0

我是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()
));
4

4 回答 4

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);
于 2013-02-19T07:17:13.790 回答
0

这是正确的,您不能将所有这些组合到一个查询中。

于 2013-02-19T07:14:33.400 回答
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); 
于 2013-02-19T07:23:27.547 回答
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);     
}
于 2013-02-19T08:47:40.627 回答