插入批处理,如果在Codeigniter 3 HMVC中有重复的密钥更新

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入批处理,如果在Codeigniter 3 HMVC中有重复的密钥更新相关的知识,希望对你有一定的参考价值。

insert_batch中是否有执行方法,并且如果键已经存在,请更新代码点火器3 HMVC中的该行?

我浏览了文档,仅发现了insert_batch和update_batch,并从一些旧的讨论中找到了,但是当我在HMVC上运行时,使用Codeigniter 2也是行不通的。

如何使用活动记录中的重复键更新行(mysql查询:重复键更新)?如果无法在insert_batch中插入或更新一行,会发生什么?所有插入失败或仅插入该行?

谢谢。

答案

这可以帮助您

public function updateduplicatebatch($table, $data ) {
     if (empty($table) || empty($data)) return false;
     $duplicate_data = array();

     foreach($data AS $key => $value) {
        $duplicate_data[] = sprintf("%s='%s'", $key, addslashes($value));
     }

     $sql = sprintf("%s ON DUPLICATE KEY UPDATE %s", $this->db->insert_string($table, $data), implode(',', $duplicate_data));

     $this->db->query($sql);
     return $this->db->insert_id();
}

你的举止应该像

$data = array('name' => $name, 'phone' => $phone, 'age' => $age);

以上是关于插入批处理,如果在Codeigniter 3 HMVC中有重复的密钥更新的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter 3 + HMVC 模块(cgi/fastcgi 与 apache 处理程序)

Codeigniter 如果不存在则插入,如果不存在则更新

CodeIgniter - 如果新的或更新的重复记录则插入活动记录

在 Codeigniter 3.0.6 中插入当前日期时间

CodeIgniter - 使用事务插入多个表

如何在 codeigniter(或 php)中获取插入的新 id? [复制]