【发布时间】:2012-04-11 03:02:07
【问题描述】:
我有以下代码:
<?
$query =$db->prepare("INSERT INTO a_table (id, a_field) VALUES ('', (:a_field)");
$query->bindParam(":a_field", $a_value);
$query->execute();
$last_id = $db->lastInsertId('a_table');
?>
我想问的是这个。想象一下,当两个人同时加载页面时,是否有可能在检索到最后一个 ID 之前插入其他人的查询,从而混淆 ID?
【问题讨论】:
-
不,不会有冲突。插入id依赖于连接,每次页面加载都会建立一个新的连接。
-
取决于底层数据库。如果是 mysql,PDO 将简单地调用 mysql last_insert_id() API 函数,它保证返回的 ID 是您的 PDO 连接执行的最后一个插入查询生成的 ID。
-
这是mysql,所以我知道我很安全。非常感谢!迈克尔,抱歉,没有找到您所指的帖子...