2013-02-19 29 views
0

我是codeigniter的新手。格式在codeigniter中寫入查詢

我有以下查詢,每個查詢具有不同的表名稱和不同的條件。

我可以在單個查詢中進行此查詢還是執行查詢的正確方法? 我必須執行所有這個查詢。

$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

由於不同的條件和不同的表格你需要寫差異 – 2013-02-19 07:08:09

回答

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); 
0

這是正確的,你不能將所有這些結合到一個查詢中。

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); 
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);  
}