PDO Get Multiple Insert Ids

六眼飞鱼酱① 提交于 2020-01-02 04:06:28

问题


Running the following query using PDO (Actually, I use prepared statements but same problem)

INSERT INTO MyTable(MyField) VALUES('Row1'), ('Row2')

How can I get the Ids for the records relating to Row1 and Row2?

$db->lastInsertId() literally returns the last single Id.

Is it sufficient to take this last Id, subtract the # of records and assume that range covers all my records? can there be gaps/jumps. Is this query guaranteed to be atomic?


回答1:


If you're using MyISAM tables then because of the table level locking mechanism it's only possible for you to get given a range of ids.

After reading http://dev.mysql.com/doc/refman/5.5/en/innodb-auto-increment-handling.html#innodb-auto-increment-traditional assuming you're using "traditional" innodb locking (which likely you are) then again for a single statement the set of IDs will be sequential.



来源:https://stackoverflow.com/questions/5941275/pdo-get-multiple-insert-ids

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!