我需要返回刚刚发生的更新的自动递增列中的值。
基本上,我用XYZ值更新用户:
$stmt->execute();
我需要从数据库中自动递增的ID列中获取新记录值。
PDO lastInsertId();
刚刚返回最新记录,在高流量网站上可能存在潜在危险?
我希望您使用的是MySql??
来自mysql网站:
生成的ID在服务器中按每个连接进行维护。这意味着函数返回给给定客户端的值是为该客户端影响AUTO_INCREMENT列的最新语句生成的第一个AUTO_INCREMENT值。此值不会受到其他客户端的影响,即使它们生成自己的AUTO_INCREMENT值也是如此。这种行为确保每个客户端都可以检索自己的ID,而不必关心其他客户端的活动,也不需要锁或事务。
进一步:
如果使用单个insert语句插入多行,LAST_insert_ID()将仅返回为插入的第一行生成的值。
所以它可以节省使用,因为它是在连接的基础上工作的。如果插入多行,则可以将其与PDO的rowCount
方法组合,以获得所有插入的id。