php - mysql & php 自动递增id并插入数据

标签 php mysql database

我的 sql 数据库中有两个数据库表。第一个是个人表,另一个是付款详细信息。个人表中的 Auto inctiment id 用作付款详细信息的外键。我必须一次向两个表插入数据。正常情况下,我应该将数据插入个人表并获取该行的自动增量ID,然后将数据插入付款数据表。但我有一些问题。

  • 我无法使用 sql SELECT 查询获取自动增量 id 很容易。因为有更多的列可以通过 WHERE 检查。
  • 获取最后一个插入 ID 并不是完美的方法。因为其他用户可以插入 当我访问另一个人的数据时,我收到了错误的 ID。

我对此不太了解。帮帮我!

最佳答案

我不太了解你的结构,但这里最好的方法是使用事务。链接:http://dev.mysql.com/doc/refman/5.7/en/commit.html .

START TRANSACTION;
INSERT /* Your insertion into personalTable */
SELECT @lastId:=LAST_INSERT_ID();
INSERT INTO paymentTable SET (user_id) VALUES (@lastId);
COMMIT;

此外,您还需要将事务隔离级别设置为可串行化,以防止任何事务违规。

UPD。感谢@Drew 让我更深入地挖掘。

关于php - mysql & php 自动递增id并插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37826644/

相关文章:

database - Oracle 中是否有任何隐式日期格式转换?

mysql - 数据库为 2 个相似的表创建表

php - mysql order by rand() 性能问题及解决方案

php - file_put_contents 的错误子句

php - 通过 FTP 同时上传时文件无法运行

mysql - MySQL : How to make a trigger that inserts data to another table

mysql - 表格规范化

sql - hibernate 如何填充自动生成字段的 id?

php - 如何在 PHP/CodeIgniter 中构建多维嵌套数组?

mysql - 加入限制结果的查询