In this program, a user is uploading a photo into MYSQL. Photoid is auto-incremented. Once the user submits the form, the code below takes action. I want the user to be redirected to the page the photo was just uploaded to. How can I redirect him to 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=???');
}
You'll want to use the PHP function mysqli_insert_id()
. This gets you the Photo ID.
if ($run_addaphoto = mysqli_query($connect, $addaphoto_query){
header('Location: photopage.php?photoid=' . mysqli_insert_id());
}
In case you are wondering, mysqli_insert_id()
is safe no matter how much traffic you get. More reading on this SO question.
For LAST_INSERT_ID(), the most recently generated ID is maintained in the server on a per-connection basis. It is not changed by another client. It is not even changed if you update another AUTO_INCREMENT column with a nonmagic value (that is, a value that is not NULL and not 0). Using LAST_INSERT_ID() and AUTO_INCREMENT columns simultaneously from multiple clients is perfectly valid. Each client will receive the last inserted ID for the last statement that client executed.
You can use mysqli_insert_id() to get the id you have just inserted.
$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().');
}