php - 查找多个插入查询的 auto_increment 值

标签 php mysql sql database auto-increment

我有一个表格可以输入学生的姓名和分数。

<小时/>

我有两张 table :

学生

student_id | student_name
         1 | John
         2 | Doe

标记

student_id | mark
         1 | 80
         2 | 90
<小时/>

学生姓名字段具有自动完成功能,可检查学生表中学生是否已存在。

现在,如果我在表单的学生姓名字段中输入J,它会显示 John。如果我单击 John,然后在 Mark 字段中输入一个分数(例如 50)并提交表单,则 student 表保持不变,而 ma​​rks 表中插入新行 (1 | 50),其中 1 是所选学生的 student_id(在本例中为 John 的 id)。

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

我的问题是,由于student_idstudent的自动递增值,因此ma​​rks中的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/

相关文章:

PHP PDO查询问题

PHP 多重 if/elseif 和错误消息/处理最佳实践

php - fpdf multicell 没有生成相同的高度

mysql - Spring 存储库中的自定义查询

java - 在已有的包含大量数据的表上创建 MySQL 索引

php - 转换为 3 位十六进制颜色代码

javascript - 无法从serializeArray获取php mysql更新

sql - 查询执行期间资源超出

sql - "one-to-many"关系上的唯一约束(无触发器)

php - 当我将第二个表连接到第一个表时的总和不正确