使用数组更新 SQL 中的多个表

Updating multiple tables in SQL using an Array

目前我的潜在客户页面有一个名为 table 的 table,我已经有很多记录了。现在,对于同一个页面,我创建了几个新字段,这些字段现在将存储在另一个名为 crm_leads_details 的 table 中。现在我将所有 POST 值存储在数组格式中,如下所示:

    $main=array( 
        'priority'=>$this->input->post('priority'),
        'lead_status'=>$this->input->post('lead_status'), 
        'comment'=>$this->input->post('comment'),
        'sub_status'=>$this->input->post('sub_status'),
        'lead_agent'=>$this->input->post('lead_agent'), 
        'emailopt'=>$this->input->post('emailopt')=='Y' ?'Y':'N',
        // 'kitchen'=>$this->input->post('kitchen')
    );

   $loginid=$this->leads_model->update_lead($main,$id);

现在在我的模型中,我尝试使用此语句来更新我的两个 table,但它不起作用:

 function update_lead($maindata,$id,$w=false)
{
    if($w==true){
        $cond=$id;
    }
    else{$cond['id']=$id;}
    $sql = "UPDATE `crm_leads` LEFT JOIN `crm_leads_details` ON `crm_leads`.`id`=`crm_leads_details`.`leads_id` 
    SET ".$maindata." WHERE ".$cond;
    $query = $this->db->query($sql);  
      print_r($this->db->last_query()); die();
      return $query;
}

这给出了以下输出 UPDATE crm_leads LEFT JOIN crm_leads_details ON crm_leads.id=crm_leads_details.leads_id SET Array WHERE Array

此外,由于 crm_leads_details 是一个新的 table,目前其中没有任何记录,所以不确定 LEFT JOIN crm_leads_details ON crm_leads.id=crm_leads_details.leads_id 是否可以在这里使用

这样写查询

$sql = "UPDATE `crm_leads` LEFT JOIN `crm_leads_details` ON `crm_leads`.`id`=`crm_leads_details`.`leads_id` 
    SET ";
$i = 0;
foreach($maindata as $key=>$value) {
    $i++;
    $sql .= $key." = ".$value;
    $sql .= ($i == count($maindata)) ? "" : " , " ;
}
$sql .= " WHERE ".$cond;