在新用户注册后将自动递增 ID 保存到另一个 table (PHP, mysqli)

saving an auto incremented ID into another table after a new user is registrated (PHP, mysqli)

我正在尝试保存将在 table 'accounts' 中创建的自动递增 ID,当新用户在第二个 table 中填写注册表时 'accounts' =29=].

代码将数据保存在两个 table 中,但我仍然需要将 'id' 从 table 'accounts' 自动递增到我的 table 'userdaten'

if ($stmt = $con->prepare('INSERT INTO accounts (username, password, email) VALUES (?, ?, ?)')) {

    $password = password_hash($_POST['password'], PASSWORD_DEFAULT);
    $stmt->bind_param('sss', $_POST['username'], $password, $_POST['email']);
    $stmt->execute();
    echo 'Data saved in table accounts';

    $stmt2 = $con->prepare('INSERT INTO userdaten (name, vorname, gebdatum, strasse, hnr, plz, ort) VALUES (?, ?, ?, ?, ?, ?, ?)');
    $stmt2->bind_param('sssssss', $_POST['name'], $_POST['vorname'], $_POST['gebdatum'], $_POST['strasse'], $_POST['hausnummer'], $_POST['plz'], $_POST['ort']);
    $stmt2->execute();
    echo 'Data saved in table userdaten';

在过去的一个小时里,我试图让它与 mysqli_insert_id 一起工作,但我无法让它工作。

知道我必须更改什么吗?上面的代码没有错误并且可以正常工作,除了自动递增的 'id' 仅保存在 'accounts'.

您可以使用 LAST_INSERT_ID() 从上一个插入查询中获取自动递增的 id 值并在当前插入查询中使用它。因此,将您的 userdaten 查询更改为:

$stmt2 = $con->prepare('INSERT INTO userdaten (id, name, vorname, gebdatum, strasse, hnr, plz, ort)
                        VALUES (LAST_INSERT_ID(), ?, ?, ?, ?, ?, ?, ?)');