查找多个插入查询的auto_increment值

时间:2014-06-16 05:52:14

标签: php mysql sql database auto-increment

我有一张表格可以输入学生的名字和他的分数。


我有两张桌子:

学生

student_id | student_name
         1 | John
         2 | Doe

标记

student_id | mark
         1 | 80
         2 | 90

学生姓名字段具有自动填充功能,如果学生已经存在,则会检查学生表。

现在,如果我在表单的学生姓名字段中输入 J ,则会显示John。如果我单击John,然后在标记字段中输入标记(例如50)并提交表单,学生表保持不变,而标记< / strong> table插入一个新行(1 | 50),其中1是所选学生的 student_id (在本例中为John的id)。

现在,如果我在学生姓名字段中输入新名称(例如,Rae),并在标记字段中输入一些标记(例如75),则两个表格应该在表单提交时插入一个新行。即,学生表现在应该有一个新行(3 | Rae),标记表应该有一个新行(3 | 75)

我的问题是,因为 student_id 是来自学生的auto_incremented值,标记中的 student_id 字段表在输入新学生时获得值0(在本例中为Rae),将行插入(0 | 75)而不是我的要求(3 | 75)。

据我所知,mysqli_insert_id()可以在这里使用,但我一直使用三个插入语句。上面提到的两个插入查询是第二和第三。第一个插入的auto_increment值正在使用mysqli_insert_id()命令用于其他目的。

1 个答案:

答案 0 :(得分:1)

在查询中使用LAST_INSERT_ID()获取新ID。例如:

INSERT INTO student (student_name) VALUES ('John');
INSERT INTO marks (student_id, mark) VALUES (LAST_INSERT_ID(), 74);