【发布时间】:2011-08-21 07:55:49
【问题描述】:
我一直在思考这个问题。
考虑一个庞大的网络应用程序,比方说,每秒执行数百万个 SQL 查询。
我运行我的代码:
$q = $db->prepare('INSERT INTO Table
(First,Second,Third,Fourth)
VALUES (?,?,?,?)');
$q->execute(array($first,$second,$third,$fourth));
紧接着,我想获取最后一个查询的自动递增 ID:
$id = $db->lastInsertId();
lastInsertId 是否有可能失败,即获取在我的两个代码块之间执行的某些 SQL 插入查询的 ID?
中学:
如果它可能失败,那么堵住这种可能的泄漏的最佳方法是什么?
创建另一个 SQL 查询以从数据库中获取正确的 ID 会更安全吗?
【问题讨论】: