php如何在当前表输入数据,同时另外一张表指定字段插入关联数据?

2025-03-13 19:41:51
推荐回答(1个)
回答1:

你的 dd 表数据插入成功后获取刚才用于插入的数据再新组装一个 SQL 添加进cg表,你写的太复杂了。

/**
 *  dd 表所有字段
 *
 *  Sorder_id
 *  Sorder_ln
 *  Sorder_des 
 *  Sorder_qty 
 *  Sorder_up 
 *  Sorder_amount 
 *  P_id 
 */
 
 function fields ($data) {
     // 组装你的 keys 和 values 
   $keys = '';
   $values = '';
   foreach ($data AS $key => $value) {
     $keys .= $key . ',';
     $values .= '\'' . $value . '\',';
   }
   return [
       'keys' => preg_replace('/,$/', '', $keys),
     'values' => preg_replace('/,$/', '', $values),
   ];
 }
 
 // 数据数组(dd 表)
 $data = [
   'Sorder_id' => 'Sorder_id',
   'Sorder_ln' => 'Sorder_ln',
   'Sorder_des ' => 'Sorder_des',
   'Sorder_qty' => 'Sorder_qty',
   'Sorder_up' => 'Sorder_up',
   'Sorder_amount' => 'Sorder_amount',
   'P_id' => 'P_id',
 ];
 
 $result = fields($data);
 $sql = "INSERT INTO tablename (" . $result['keys'] . ") VALUES (" . $result['values'] . ")";
 echo $sql; // 插入
 
 
 
 // cg 表的数据数组
 $dataCg = [
   'cg_id' => 'cg_id', 
   'cg_ln' => 'cg_ln',
   'cg_des' => 'cg_des',
   'cg_qty' => $data['Sorder_qty'], // 同步 dd 表中的 sorder_qty
   'cg_up' => 'cg_up',
   'cg_amount' => 'cg_amount',
   'P_id' => $data['P_id'],         // 同步 dd 表中的 P_id
 ];
 
 $result = fields($dataCg);
 $sql = "INSERT INTO tablename (" . $result['keys'] . ") VALUES (" . $result['values'] . ")";
 echo $sql;   // cg 表插入