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

単一の関数を作成する

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 に答える
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

そのすべてを 1 つのクエリに結合することはできません。

于 2013-02-19T07:14:33.400 に答える