用户
 找回密码
 入住 CI 中国社区
搜索
查看: 8614|回复: 6
收起左侧

CI如何获取批量插入数据的自增id

[复制链接]
发表于 2012-6-27 14:26:55 | 显示全部楼层 |阅读模式
我执行insert_batch();我需要获取插入数据的自增id怎么获得?
发表于 2012-6-27 14:43:25 | 显示全部楼层
$this->db->insert($table,$data);
return $this->db->insert_id();
 楼主| 发表于 2012-6-27 14:44:05 | 显示全部楼层
本帖最后由 独醉夜寂寞 于 2012-6-27 15:46 编辑

虽然没有在手册上以及网站上找到解决方案,但是我自己想到了怎么解决。因为id是自增的,所以可以采用for循环。
$this->db->insert_id()可以获取插入第一条数据的id;然后它小于它加插入数据条目数,然后递增;就可以获取到所有插入的id了
发表于 2012-6-27 21:50:03 | 显示全部楼层
你这个需求有点奇怪哈,你用for循环能保证你数据是对的么?如果有100个同时写入你怎么循环?
发表于 2012-6-27 23:54:55 | 显示全部楼层
我觉得你应该在for循环里执行$this->db->insert(),然后用$this->db->insert_id()获取每一次插入后的id
发表于 2014-6-20 15:25:05 | 显示全部楼层
独醉夜寂寞 发表于 2012-6-27 14:44
虽然没有在手册上以及网站上找到解决方案,但是我自己想到了怎么解决。因为id是自增的,所以可以采用for循 ...

我现在要使用insert_batch 同时插入3万条数据,但是insert_id 得到的id 不是第一个ID,如何处理?   insert_batch 被分批插入了?  然后返回的id 是最后一次插入的那段数据的第一个ID。
 楼主| 发表于 2014-7-21 13:39:04 | 显示全部楼层
bopoco 发表于 2014-6-20 15:25
我现在要使用insert_batch 同时插入3万条数据,但是insert_id 得到的id 不是第一个ID,如何处理?   inse ...

你还循环着1条1条的插入吧!

本版积分规则