我有一张表格可以输入学生的名字和他的分数。
我有两张桌子:
学生
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()命令用于其他目的。
答案 0 :(得分:1)
在查询中使用LAST_INSERT_ID()
获取新ID。例如:
INSERT INTO student (student_name) VALUES ('John');
INSERT INTO marks (student_id, mark) VALUES (LAST_INSERT_ID(), 74);