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

时间:2013-02-08 12:24:22

标签: php pdo

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

基本上我正在使用XYZ值更新用户:

$stmt->execute();

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

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

1 个答案:

答案 0 :(得分:4)

我希望你使用MySql ??

来自mysql网站:

  

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

此外:

  

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

因此它可以保存,因为它可以在连接的基础上运行。如果你插入多行,你可以将它与PDO的rowCount方法结合起来,以获得所有插入的id。