【发布时间】:2014-08-05 21:38:29
【问题描述】:
我有一个表格可以输入学生的姓名和分数。
我有两张桌子:
学生
student_id | student_name
1 | John
2 | Doe
标记
student_id | mark
1 | 80
2 | 90
Student Name 字段具有自动完成功能,可检查 student 表是否学生已存在。
现在,如果我在表单的 Student Name 字段中输入 J,它会显示 John。如果我单击 John,然后在 Mark 字段中输入一个标记(例如 50)并提交表单,则 student 表保持不变,而 marks 表插入新行 (1 | 50),其中 1 是所选学生的 student_id(在本例中为 John 的 id)。
现在,如果我在 Student Name 字段中输入一个新名称(例如 Rae),并在 Mark 字段中输入一些标记(例如 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
标签: php mysql sql database auto-increment