我正在使用 PDO 做一个带有 INSERT SQL 查询的注册表单.在此 INSERT 之后,我想提取刚刚创建的 userid(自动递增,主键),并将其 INSERT 提取到另一个表(确认代码"表)中
I am doing a signup form with an INSERT SQL query using PDO. After this INSERT, I want to extract the userid (auto incrementing, primary key) that was just created, and INSERT it into another table (a "confirmation code" table)
但我如何确保此用户 ID 不是第二个用户的用户 ID,该用户 ID 比第一个用户晚 1/1000 秒注册?
But how can I make sure that this userid is not that of a second user who registered 1/1000th of a second later that the first user?
我应该找到某种方法来锁定桌子吗?我应该使用事务吗?
Should I find some way of locking the table? Should I use transactions?
lastInsertId() 返回在该连接上插入的最后一行的标识符,因此并发用户(与数据库的不同连接)不会干扰.
lastInsertId() returns the identifier of the last row inserted on that connection, so concurrent users (with different connections to the database) will not interfere.
这篇关于如何确保 PDO 的 lastInsertId() 不是另一个同时插入的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
MySQLi准备好的语句&foreach 循环MySQLi prepared statement amp; foreach loop(MySQLi准备好的语句amp;foreach 循环)
mysqli_insert_id() 是从整个服务器还是从同一用户获Is mysqli_insert_id() gets record from whole server or from same user?(mysqli_insert_id() 是从整个服务器还是从同一用户获取记录?)
PHP MySQLi 无法识别登录信息PHP MySQLi doesn#39;t recognize login info(PHP MySQLi 无法识别登录信息)
mysqli_select_db() 需要 2 个参数mysqli_select_db() expects exactly 2 parameters(mysqli_select_db() 需要 2 个参数)
Php mysql pdo 查询:用查询结果填充变量Php mysql pdo query: fill up variable with query result(Php mysql pdo 查询:用查询结果填充变量)
MySQLI 28000/1045 用户“root"@“localhost"的访问MySQLI 28000/1045 Access denied for user #39;root#39;@#39;localhost#39;(MySQLI 28000/1045 用户“root@“localhost的访问被拒绝)