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