加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

CakePHP 3.0:如何在重复密钥更新时插入?

发布时间:2020-12-13 22:39:02 所属栏目:PHP教程 来源:网络整理
导读:我有一个像这样的数组$文章 [ (int) 0 = [ 'id' = '-@940039','xe_dsca' = 'üP2768G/1','xe_citg' = '1F0200','xe_cuni' = 'stk','xe_seak' = 'üP2768G/1','xe_seab' = '','xe_wght' = '0.0153','xe_cwun' = 'kg','xe_wgap' = '2','xe_seri' = '2','xe_ltc
我有一个像这样的数组$文章
[
    (int) 0 => [
        'id' => '-@940039','xe_dsca' => 'üP2768G/1','xe_citg' => '1F0200','xe_cuni' => 'stk','xe_seak' => 'üP2768G/1','xe_seab' => '','xe_wght' => '0.0153','xe_cwun' => 'kg','xe_wgap' => '2','xe_seri' => '2','xe_ltct' => '2','xe_qual' => '2','xe_hama' => '2','xe_ctyo' => 'DE','xe_ccde' => '85045095','xe_cpln' => '240000','xe_spar' => '2','xe_wear' => '2','xe_ctyo_de' => null,'xe_cean' => null,'xe_ewm_dsce' => null,'xe_cood' => null,'xe_ewm_dsne' => null,'xe_ewm_dsge' => null,'xe_ewm_dsen' => null,'xe_ewm_dscz' => null,'xe_wgh1' => null,'xe_wgh2' => null,'xe_wgh3' => null
    ],(int) 1 => [
        'id' => '000-000500-00000','xe_dsca' => 'DUMMY ZEITBUCHUNG','xe_citg' => '1F0800','xe_seak' => 'DUMMY ZEITBUCHUN','xe_seab' => '000-000500-00000','xe_wght' => '0','xe_ccde' => '000','xe_cpln' => '930000','xe_ctyo' => null,'xe_wgh3' => null
    ]

在我的控制器中,我有这些线

foreach ($articles AS $article) {
    $query = $this->Articles->query();
    $query
        ->insert($required_article_fields)
        ->values($article)
        ->execute();
}

这段代码工作正常,但是有人建议我如何在重复密钥更新时插入?什么是一次保存多行数据的最佳做法?

您可以使用查询epilog()方法
foreach ($articles AS $article) {
  $query = $this->Articles->query();
  $query
    ->insert($required_article_fields)
    ->values($article)
    ->epilog('ON DUPLICATE KEY UPDATE field=field+1')
    ->execute();
}

如果需要安全地传递值,还可以将QueryExpression对象传递给方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读