PDO lastInsertId()?从刚插入值的特定列返回值


PDO lastInsertId(); ? return value from specific column of just inserted value

我需要返回刚刚发生的更新的自动递增列中的值。

基本上,我用XYZ值更新用户:

$stmt->execute();

我需要从数据库中自动递增的ID列中获取新记录值。

PDO lastInsertId();刚刚返回最新记录,在高流量网站上可能存在潜在危险?

我希望您使用的是MySql??

来自mysql网站:

生成的ID在服务器中按每个连接进行维护。这意味着函数返回给给定客户端的值是为该客户端影响AUTO_INCREMENT列的最新语句生成的第一个AUTO_INCREMENT值。此值不会受到其他客户端的影响,即使它们生成自己的AUTO_INCREMENT值也是如此。这种行为确保每个客户端都可以检索自己的ID,而不必关心其他客户端的活动,也不需要锁或事务。

进一步:

如果使用单个insert语句插入多行,LAST_insert_ID()将仅返回为插入的第一行生成的值。

所以它可以节省使用,因为它是在连接的基础上工作的。如果插入多行,则可以将其与PDO的rowCount方法组合,以获得所有插入的id。