获取第一个语句的ID并在第二个

时间:2017-07-03 18:55:52

标签: php mysqli mysql-insert-id

我有一个在数据库中创建用户的脚本:

  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();

表成员还有一个唯一且自动增量的ID列。

创建用户后,我想运行一个新语句。

 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);

这次我有一个名为user_id的新列。我想获取第一个INSERT的插入ID,并将其作为user_id插入到第二个表中。

有人知道我该怎么做吗?

修改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();

0 个答案:

没有答案