簡體   English   中英

codeigniter使用多個where子句更新多行

[英]codeigniter update multiple rows with multiple where clause

當我嘗試這段代碼時:

$query = '';
foreach ($data as $row)
{
    $where = array(
                'community_id'  => $row->id,
                'user_id'       => $this->session->user_id,
                'status'        => 'invited_to_join',
            );
    $update = array(
                'status' => 'joined',
            );
    $query .= $this->db->set($update)->where($where)->get_compiled_update('community_members').'; ';
}
if ($query)
{   
    return $this->db->query($query);
}

它給了我錯誤:

您的SQL語法有錯誤; 查看與您的MariaDB服務器版本對應的手冊,以便在'UPDATE community_members '附近使用正確的語法SET status ='加入'WHERE community_id ='18'A'在第4行

這個答案使用CASE直接查詢,但我不知道如何將其轉換為Codeigniter的查詢生成器..

試試這個例子;

您可以像這樣直接使用數組$data['id'] ,這里不需要使用循環作為我的操作

        $this->db->set('status','joined');
        $this->db->where('community_id',$data['id']);
        $this->db->where('user_id',$this->session->user_id); 
        $this->db->where('status','invited_to_join');
        $this->db->update('community_members');

您也可以這樣使用where子句:

    $where = "'community_id'=".$data['id']." AND user_id=".$this->session-user_id." AND status='invited_to_join'";

    $this->db->set('status','joined');
    $this->db->where($where);
    $this->db->update('community_members');

謝謝!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM