I have a script that creates an user in the database:
if ($insert_stmt = $mysqli->prepare("INSERT INTO members (username, email, password, salt) VALUES (?, ?, ?, ?)")) {
$insert_stmt->bind_param('ssss', $username, $email, $password, $random_salt);
if (! $insert_stmt->execute()) {
header('Location: ../error.php?err=Registration failure: INSERT');
exit();
}
}
header('Location: ./register_success.php');
exit();
The table members also haves an ID column which is unique and auto increment.
After the user is created I want to run a new statement.
if ($insert_stmt2 = $mysqli->prepare("INSERT INTO users (user_id, username, email, password, salt) VALUES (?, ?, ?, ?, ?)")) {
$insert_stmt2->bind_param('sssss', $user_id, $username, $email, $password, $random_salt);
This time I have a new column named user_id. I want to get the inserted ID of the first INSERT and insert it as user_id into the second table.
Does someone know how I can do that?
Edit 1:
if ($insert_stmt = $mysqli->prepare("INSERT INTO members (username, email, password, salt) VALUES (?, ?, ?, ?)")) {
$insert_stmt->bind_param('ssss', $username, $email, $password, $random_salt);
// Execute the prepared query.
if (! $insert_stmt->execute()) {
header('Location: ../error.php?err=Registration failure: INSERT');
exit();
}
if ($insert_stmt2 = $mysqli->prepare("INSERT INTO users (user_id, username, email, password, salt) VALUES (?, ?, ?, ?, ?)")) {
$insert_stmt2->bind_param('sssss', $mysqli->insert_id, $username, $email, $password, $random_salt);
// Execute the prepared query.
if (! $insert_stmt2->execute()) {
header('Location: ../error.php?err=Registration failure: INSERT');
exit();
}
}
}
header('Location: ./register_success.php');
exit();