1

在这个程序中,用户正在将照片上传到 MYSQL。Photoid 是自动递增的。一旦用户提交表单,下面的代码就会采取行动。我希望将用户重定向到刚刚上传照片的页面。我怎样才能将他重定向到photopage.php?photoid=???.

 $addaphoto_query = "INSERT INTO `photosite`.`photos` (id, photoid, title, description) VALUES ('$id', '', '$title', '$description')";

    if ($run_addaphoto = mysqli_query($connect, $addaphoto_query){
         header('Location: photopage.php?photoid=???');
    }
4

2 回答 2

0

您需要使用 PHP 函数mysqli_insert_id()。这将为您提供照片 ID。

if ($run_addaphoto = mysqli_query($connect, $addaphoto_query){
    header('Location: photopage.php?photoid=' . mysqli_insert_id());
}

如果您想知道,mysqli_insert_id()无论您获得多少流量都是安全的。有关此 SO 问题的更多阅读。

来自 MySQL 手册

对于 LAST_INSERT_ID(),最近生成的 ID 在每个连接的基础上维护在服务器中。它不会被其他客户端更改。如果您使用非魔术值(即非 NULL 且非 0 的值)更新另一个 AUTO_INCREMENT 列,它甚至不会更改。从多个客户端同时使用 LAST_INSERT_ID() 和 AUTO_INCREMENT 列是完全有效的。每个客户端都将收到客户端执行的最后一条语句的最后插入 ID。

于 2013-04-02T20:37:00.443 回答
0

您可以使用mysqli_insert_id()来获取您刚刚插入的 id。

    $addaphoto_query = "INSERT INTO `photosite`.`photos` (id, photoid, title, description) VALUES      ('$id', '', '$title', '$description')";

    if ($run_addaphoto = mysqli_query($connect, $addaphoto_query){
         header('Location: photopage.php?photoid='.mysqli_insert_id().');
    }
于 2013-04-02T20:37:41.047 回答