当前位置: 首页 > 面试题库 >

如何确保PDO的lastInsertId()不是另一个同时插入的?

左丘善
2023-03-14
问题内容

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

但是,如何确定该用户名不是第二位用户的用户名,后者在第一位用户之后的1/1000秒内注册呢?

我应该找到某种方法锁定桌子吗?我应该使用交易吗?


问题答案:

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



 类似资料:
  • 问题内容: 我正在创建一个基于测验的系统,该系统的一部分包括2个表: Answer_bank表: 和Question_bank表: 目的是允许某人创建一个问题和一个答案,答案将以等于的形式存储在答案库表中。我不想在同一张表中使用它,因为这会使我变得更加复杂。 我尝试使用以下PDO / SQL插入两个表中。 不过这个问题我已经是在表总是插入,而不是相同的ID 。这是这样做的不正确方法吗?答案表包括?

  • 问题内容: 这是场景: 我正在尝试在插入表时创建引用记录。但是我得到的是null,因为它是自动从序列中生成的。我也尝试了触发器插入,但是结果是一样的。有什么办法解决吗? 问题答案: 避免使用规则,因为它们会再次咬住您。 在每行运行的表a上使用after触发器。它看起来应该像这样(未经测试):

  • 我正在学习围棋,我有一个理论问题。 如何使用切片的副本而不是对其的引用? 问题游乐场连接 我提出了一个可能的解决方案,但它毫无意义,因为它依赖于将切片3创建为空,并通过将切片2复制到切片3上。没有捷径吗? 解决方案游乐场链接 编辑: 我已经读到,在这个天真的例子中,有一种特殊的行为可以作为解决方案(见下文)。然而,在任何其他情况下,这都是行不通的。基本上,如果创建空切片时没有指定底层数组的大小,G

  • 批量订单 Purchorder 我已经试了一个星期了。我有这两个表,batchporder和purchord在batchporder表中,我需要插入一行,并获得传递给purchord插入的主id。在purchord中,我需要插入多行,因此我使用了insert\u batch。 控制器 模型 错误1 遇到PHP错误严重性:警告 消息:array_keys()要求参数1为数组,字符串为给定值 文件名:

  • 我有一个查询,我想插入最后一个ID。字段ID是主键,并自动递增。 我知道我必须用这句话: 该语句适用于这样的查询: 但是如果我想使用此语句获取ID: 我得到这个错误: 我做错了什么?

  • 我有两个方法内部类称为和。 我从jquery dropzone调用方法发布图像,并调用将表单输入插入数据库。 我想将最后插入的Id从方法传递到以将图像详细信息保存到数据库中。 Home.php(主计长) addProperty。js(Jquery) submit_property.php(查看) 属性模型。php(模型) 我想将图像细节插入名为tbl_property_images的表中 文件上传