8

我正在INSERT使用 PDO 做一个带有 SQL 查询的注册表单。在此 INSERT 之后,我想提取userid刚刚创建的(自动递增,主键),并将INSERT其提取到另一个表(“确认码”表)中

但是我如何确保这个用户 ID 不是第二个用户的用户 ID,该用户在第一个用户之后注册了 1/1000 秒?

我应该找到一些锁定桌子的方法吗?我应该使用交易吗?

4

2 回答 2

10

lastInsertId()返回在该连接上插入的最后一行的标识符,因此并发用户(与数据库的不同连接)不会干扰。

于 2012-05-23T00:42:38.713 回答
1

您可以通过电子邮件或某些独特字段进行选择来避免这种情况。这将保证您获得正确的用户 ID。

例如:

select id from user_table where email = 'user@email.com' limit 1;
于 2012-05-23T00:38:11.807 回答