6

有没有办法在批量插入查询中执行,如果密钥已经存在,请在 codeigniter 中更新该行?我浏览了文档,发现只有 insert_batch 和 update_batch。但是如何在活动记录中使用重复键更新行?如果在 batch_insert 中插入或更新一行失败会怎样?所有插入都失败还是只有那一行?

4

2 回答 2

9

您将不得不通过添加“ON DUPLICATE”语句来进行少量自定义查询

$sql = $this->db->insert_string('YourTable', $data) . ' ON DUPLICATE KEY UPDATE duplicate=duplicate+1';
$this->db->query($sql);
$id = $this->db->insert_id();

也请检查一下,它会给你更好的解决方案

于 2013-12-24T06:31:49.233 回答
0

对于 Codeigniter 3,你可以使用这个库。这使您能够提供要插入到单独行中的键值对数组,并且如果数据库中出现重复键,则将自动更新数据。 https://github.com/amir-ranglerz/CodeIgniter-Insert-Batch-on-DUPLICATE-KEY-Update

于 2020-08-07T12:07:30.377 回答