扫码关注官方订阅号
INSERT INTO t1 (id,name) VALUES (1,'name1' ),(2,'name2')...mysql 同时插入多条数据,怎么获取这些数据的ID?条数是随机的,数据值也是随机的
INSERT INTO t1 (id,name) VALUES (1,'name1' ),(2,'name2')...
学习是最好的投资!
已以往经验,有批量插入时,最好新增一个“批号”的字段,可以用时间戳,也可以用其他方式,然后查询新增批号。
建议自己封装下,插入成功返回的时候,$this->db->getLastInsID()获取最后插入的ID,根据插入条数倒推其他的ID
按你这个sql看来,你的id是自己生成的么?如果自己生成的你可以先把数据生成的id存起来。如果是自增的,那就根据条数来推断。
利用 PDO::lastInsertId 手册传送 可以获取最后一条插入的id,在插入之前您可以先获得现在最大的IDMax(),这样第一个ID和最后一个ID都拿到了。然后您的数组是有顺序的 这样给它们编号进去,这样您就知道了刚刚插入了哪些ID,当然坐等大佬指点更优秀的方法
PDO::lastInsertId
id
Max()
ID
这个要看你的id是如何生成的,如果是数据库自增的话应该没有办法返回给你吧,如果是你自己定义的id的话你可以在插入成功之后自己维护这条id。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
已以往经验,有批量插入时,最好新增一个“批号”的字段,可以用时间戳,也可以用其他方式,然后查询新增批号。
建议自己封装下,插入成功返回的时候,$this->db->getLastInsID()获取最后插入的ID,根据插入条数倒推其他的ID
按你这个sql看来,你的id是自己生成的么?如果自己生成的你可以先把数据生成的id存起来。如果是自增的,那就根据条数来推断。
利用
PDO::lastInsertId手册传送 可以获取最后一条插入的id,在插入之前您可以先获得现在最大的IDMax(),这样第一个ID和最后一个ID都拿到了。然后您的数组是有顺序的 这样给它们编号进去,这样您就知道了刚刚插入了哪些ID,当然坐等大佬指点更优秀的方法这个要看你的id是如何生成的,如果是数据库自增的话应该没有办法返回给你吧,如果是你自己定义的id的话你可以在插入成功之后自己维护这条id。