在新用户注册后将自动递增 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(), ?, ?, ?, ?, ?, ?, ?)');
我正在尝试保存将在 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(), ?, ?, ?, ?, ?, ?, ?)');