PHP/SQL:如何使用 PHP 将表单输入通过 SQL 插入 2 个数据库表中


PHP/SQL: How to insert form input via SQL into 2 database tables with PHP?

我刚刚开始使用PHP和SQL,我正在尝试为PHP网站制作帐户创建屏幕。为此,我创建了一个表单文件,其中包含对第二个文件的操作,其中表单的输入数据应该插入到本地数据库的两个表中。(我正在使用带有phpMyAdmin的WAMP) -

我的(数据库)连接已启动,一切正常,我没有错误,当转到phpMyAdmin并使用虚拟数据执行SQL语句时,它可以工作,但是当用户填写表单并单击下一步时,它没有插入到数据库中?有人知道如何解决这个问题吗?

这是我当前的 php 代码,其中数据应该通过 SQL 语句插入到 2 个不同的表中:

<?php
    $_SESSION['user'] = $_POST['name']; //user naam ophalen van vorige pagina en onthouden voor gehele sessie
$name= $_SESSION['user'];
    $_SESSION['wachtwoord'] = $_POST['access']; 
$access= $_SESSION['wachtwoord'];
    $_SESSION['mail'] = $_POST['email'];
$email= $_SESSION['mail'];
    $_SESSION['huisdier'] = $_POST['pet'];
$pet= $_SESSION['huisdier'];
$savenewuser = "BEGIN; 
                INSERT INTO user (id, naam, email, pass)
                VALUES (NULL, '$name', '$email', '$access');
                INSERT INTO preferences (id, huisdier)
                VALUES (LAST_INSERT_ID(), '$pet');
                COMMIT;
                ROLLBACK;";
mysqli_query($con, $savenewuser);
$result = mysqli_query($con, $savenewuser);
if (!$result) {
echo "Error: Account could not be created, try again later.";
} else { 
echo "Account has been created!";
}
mysqli_close($con);
?> 

执行时,我确实收到消息"错误:无法创建帐户,请稍后重试。 - 我想我必须更改有关SQL语句的某些内容,但我不确定究竟如何。

mysqli_query被调用了两次。如果您调用它两次,第二次将出错,因为您正在尝试为 2 个人提供相同的 id(假设您正确设置了数据库)。

如果这不起作用,我会尝试用mysqli_multi_query替换mysqli_query。