Php 将数据复制到其他表中,检查是否存在
我想把许多行复制到另一个表中 表临时数据Php 将数据复制到其他表中,检查是否存在,php,laravel,controller,copy,file-exists,Php,Laravel,Controller,Copy,File Exists,我想把许多行复制到另一个表中 表临时数据 | id | name | email | id_transaction | order_number | |----|------|------------|----------------|--------------| | 1 | Gery | a@mail.com | A1 | 1 | | 2 | Ray | b@mail.com | A1 | 2
| id | name | email | id_transaction | order_number |
|----|------|------------|----------------|--------------|
| 1 | Gery | a@mail.com | A1 | 1 |
| 2 | Ray | b@mail.com | A1 | 2 |
| id | name | email | id_transaction | order_number |
我想将这些行复制到表主数据
| id | name | email | id_transaction | order_number |
|----|------|------------|----------------|--------------|
| 1 | Gery | a@mail.com | A1 | 1 |
| 2 | Ray | b@mail.com | A1 | 2 |
| id | name | email | id_transaction | order_number |
我想检查是否存在id\u交易
和order\u编号
,该行不会复制到主数据
这是我到目前为止尝试过的,但它只是从id\u事务中复制第一行
| 1 | Gery | a@mail.com | A1 | 1 |
尝试删除您希望复制的记录的id
(如果您不在乎)或更改它。我还建议您返回$copy
的值,以了解该变量的填充方式,如果未按预期填充,请使用toSql()
输出正在执行的查询
无论如何,您应该为
循环计算主数据
记录,外部,因为您重复同一查询很多次,这是无用的,也是对机器资源的浪费
您提供的代码应为:
$copy = TEMPORARYDATA::select('name', 'email', 'id_transaction', 'order_number')
->where('id_transaction', '=', $id_trans )
->get()
->toArray();
$count = MAINDATA::where('id_transaction', $id_trans)
->groupby('order_num')
->count();
foreach ($c as $copy)
{
if ($count > 0)
;
else
MAINDATA::insert($c);
}
N.B.:确保您试图在表中插入的属性位于模型中的受保护的$filleble
数组中。阅读更多信息尝试使用此代码将临时数据表传输到主数据表,您的条件也会得到满足。
$temporary_Data=[]
`$temporary\u Data=TEMPORARYDATA::where('id\u transaction','=',$id\u trans)->get()
foreach($Data形式的临时数据)
{
$mainObj=['name'=>$temporary\u Data->name,
“email”=>$temporary\u Data->email,
'id\u transaction'=>$temporary\u Data->id\u transaction,
“订单号”=>$temporary\u Data->order\u number,]
MAINDATA::创建($data);
}`