我有一个表单,可以提交 super 基本信息,只是一个新名称(该名称被分配了一个唯一的 ID)。我想要实现的是,当用户提交名称时,它会提交到数据库中,并且他们会被重定向到新页面 card.php ,在那里他们可以添加更多具体信息。但是,与刚刚提交的行关联的唯一 ID 需要在 URL 中遵循 (id=$id)
$query = "INSERT INTO name VALUES(NULL, '$name')";
mysqli_query($conn, $query);
$query2 = "SELECT * FROM name ORDER BY id DESC LIMIT 1";
$result = mysqli_query($conn, $query2);
while($row = mysqli_fetch_array($result)) {
$id = $row['id'];
}
header("Location: http://localhost/card.php?id=$id");
流程
addName.php -> 用户提交新名称 -> 添加到数据库 -> 使用刚刚提交的名称的唯一 id 值重定向到 card.php
1.) 有没有办法保留刚刚提交的行的 id?碰巧有 2 个或更多人同时提交将最后一行插入数据库的第二个查询将返回错误的行 id
2)。让 while 循环返回 1 条信息似乎是一种糟糕的做事方式,这可能是最基本的狗屎,但我似乎无法在不这样做的情况下返回 1 条数据
最佳答案
尝试使用mysqli_insert_id
,它返回从先前的INSERT
操作生成的AUTO_INCRMENT ID。
$query = "INSERT INTO name VALUES(NULL, '$name')";
mysqli_query($conn, $query);
$id = mysqli_insert_id();
header("Location: http://localhost/card.php?id=$id");
引用: http://us1.php.net/manual/en/function.mysql-insert-id.php
关于php - 获取刚刚插入数据库的行的唯一ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20177939/