1

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

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

$stmt->execute();

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

PDOlastInsertId();只返回最新记录,在高流量站点上可能存在潜在危险?

4

1 回答 1

4

我希望你正在使用MySql??

来自mysql站点:

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

更远:

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

所以它可以保存使用,因为它是在连接的基础上工作的。如果您插入多行,您可以将其与 PDO 的rowCount方法结合使用以获取所有插入的 id。

于 2013-02-08T12:33:15.153 回答