我有一个表格可以输入学生的姓名和分数。
<小时/>我有两张 table :
学生
student_id | student_name
1 | John
2 | Doe
标记
student_id | mark
1 | 80
2 | 90
<小时/>
学生姓名字段具有自动完成功能,可检查学生表中学生是否已存在。
现在,如果我在表单的学生姓名字段中输入J,它会显示 John。如果我单击 John,然后在 Mark 字段中输入一个分数(例如 50)并提交表单,则 student 表保持不变,而 marks 表中插入新行 (1 | 50),其中 1 是所选学生的 student_id(在本例中为 John 的 id)。
现在,如果我在“学生姓名”字段中输入新姓名(例如 Rae),并在“标记”字段中输入一些标记(例如 75),则两个表格应该在表单提交时插入新行。即,student 表现在应该有一个新行 (3 | Rae),marks 表应该有一个新行 (3 | 75)
我的问题是,由于student_id是student的自动递增值,因此marks中的student_id字段输入新学生(在本例中为 Rae)时,表获得值 0,它将行插入为 (0 | 75),而不是我的要求 (3 | 75)。
据我所知,这里可以使用mysqli_insert_id(),但我一次使用了三个插入语句。上面提到的两个插入查询是第二个和第三个。使用 mysqli_insert_id() 命令将第一次插入的 auto_increment 值用于其他目的。
最佳答案
在查询中使用 LAST_INSERT_ID()
来获取新 ID。例如:
INSERT INTO student (student_name) VALUES ('John');
INSERT INTO marks (student_id, mark) VALUES (LAST_INSERT_ID(), 74);
关于php - 查找多个插入查询的 auto_increment 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24237314/