使用PDO运行以下查询(实际上,我使用准备好的语句,但存在相同的问题)
INSERT INTO MyTable(MyField) VALUES('Row1'), ('Row2')
如何获得有关Row1和的记录的ID Row2?
Row1
Row2
$db->lastInsertId() 从字面上返回最后一个ID。
$db->lastInsertId()
采取这个最后的ID,减去记录数并假定范围覆盖了我的所有记录,是否足够?会有差距/跳跃。是否保证此查询是原子查询?
如果您使用的是MyISAM表,则由于表级别的锁定机制,您只能获得一定范围的ID。
阅读http://dev.mysql.com/doc/refman/5.5/en/innodb-auto-increment- handling.html#innodb-auto-increment- traditional后,假设您使用的是“传统” innodb锁定(可能您是的),那么对于单个语句而言,ID的集合将是连续的。