我有一个提交超级基本信息的表单,只是一个新名称(该名称被赋予唯一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 - >用户提交新名称 - >添加到数据库 - >重定向到card.php具有刚刚提交的名称的唯一ID值
1。)有没有办法保留刚刚提交的行的ID?在侥幸的情况下,2个或更多人同时提交第二个查询,即将最后一行插入数据库中将返回错误的行ID 2)。有一个while循环返回1条信息似乎是一个糟糕的做事方式,这可能是最基本的狗屎但我似乎无法返回1条数据而不这样做
答案 0 :(得分:1)
尝试使用mysqli_insert_id
返回从先前INSERT
操作生成的AUTO_INCREMENT 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
答案 1 :(得分:1)
您可以使用mysqli函数检索最后插入的ID(按照评论中的建议检查mysqli_insert_id),但我不建议您在URL中使用用户ID,人们可以尝试进入,使用其他ID
你也可以使用php函数生成自定义签出:uniqid