在codeigniter中编写查询的格式

时间:2013-02-19 07:01:56

标签: php mysql codeigniter

我是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 个答案:

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