Php 在插入后获取id,并将其作为值保存到另一个表中

Php 在插入后获取id,并将其作为值保存到另一个表中,php,mysql,sql,Php,Mysql,Sql,我正在编写一个应用程序,我现在有一个问题。 当我向应用程序注册一个新学生时,会在我的php脚本上运行一个查询,并将新学生插入我的数据库 我现在想做的是,当我注册他时,我希望我的php脚本运行一个多查询,以便所有其他表都应该用NULL填充,并且查询应该从新创建的学生那里获得ID,以将其与其他表链接(外键) 我用mysqli\u multiple\u query和LAST\u INSERT\u ID()进行了尝试,但都不起作用 如何从我的插入中获得该id? 这是我的php脚本 <?PHP

我正在编写一个应用程序,我现在有一个问题。
当我向应用程序注册一个新学生时,会在我的php脚本上运行一个查询,并将新学生插入我的数据库

我现在想做的是,当我注册他时,我希望我的php脚本运行一个多查询,以便所有其他表都应该用
NULL
填充,并且查询应该从新创建的学生那里获得
ID
,以将其与其他表链接(外键)

我用
mysqli\u multiple\u query
LAST\u INSERT\u ID()
进行了尝试,但都不起作用

如何从我的插入中获得该id?

这是我的php脚本

<?PHP

    if ($_SERVER['REQUEST_METHOD']=='POST') {
        $Name     = $_POST['Name'];
        $Surname  = $_POST['Surname'];
        $Street   = $_POST['Street'];
        $Hometown = $_POST['Hometown'];

        if ($Name == '' || $Surname == '' || $Street== '' || $Hometown == '') {
            echo 'please fill all values';
        } else {
            require_once('dbConnect.php');

            $sql  = "INSERT INTO T_Student(Name,Surname,Street,Hometown) VALUES('$Name','$Surname','$Street','$Hometown')";
            $sql .= "INSERT INTO T_University(ID, Teacher, Subject , Classroom, F_ID_Student) VALUES ("","","","","",LAST_INSERT_ID())";


            if(mysqli_multi_query($con,$sql)){
                echo 'successfully registered';
            } else {
                echo 'oops! Please try again!';
            }
        }
        mysqli_close($con);
    }
    echo "Data Inserted";
?>

不要连接这两个查询。执行第一个,将最后一个id保存到变量中,如

$id = mysqli_insert_id();
,然后执行第二个查询,引用值中的变量


请注意,如果这些
$\u POST
变量来自用户提交的表单,则在将其保存到数据库之前对其进行一些验证将非常有用。也许答案会是一本好书;)

不要连接这两个查询。执行第一个,将最后一个id保存到变量中,如

$id = mysqli_insert_id();
,然后执行第二个查询,引用值中的变量


请注意,如果这些
$\u POST
变量来自用户提交的表单,则在将其保存到数据库之前对其进行一些验证将非常有用。也许答案会是一本好书;)

我已经修改了你的代码。试试看它是否适合你

<?php

    if ($_SERVER['REQUEST_METHOD']=='POST') {
        $Name     = $_POST['Name'];
        $Surname  = $_POST['Surname'];
        $Street   = $_POST['Street'];
        $Hometown = $_POST['Hometown'];

        if ($Name == '' || $Surname == '' || $Street== '' || $Hometown == '') {
            echo 'please fill all values';
        } else {
            require_once('dbConnect.php');

            $sql = "INSERT INTO T_Student(Name,Surname,Street,Hometown)VALUES('$Name','$Surname','$Street','$Hometown')";
            mysqli_query($con, $sql);

            $id = mysqli_insert_id($con);

            if ($id) {
                $sql = "INSERT INTO T_University(ID, Teacher, Subject , Classroom, F_ID_Student) VALUES (NULL, NULL, NULL, NULL, NULL, $id)";
                mysqli_query($con, $sql);
            }
        }
        mysqli_close($con);
    }
    echo "Data Inserted";
?>

我已经修改了你的代码。试试看它是否适合你

<?php

    if ($_SERVER['REQUEST_METHOD']=='POST') {
        $Name     = $_POST['Name'];
        $Surname  = $_POST['Surname'];
        $Street   = $_POST['Street'];
        $Hometown = $_POST['Hometown'];

        if ($Name == '' || $Surname == '' || $Street== '' || $Hometown == '') {
            echo 'please fill all values';
        } else {
            require_once('dbConnect.php');

            $sql = "INSERT INTO T_Student(Name,Surname,Street,Hometown)VALUES('$Name','$Surname','$Street','$Hometown')";
            mysqli_query($con, $sql);

            $id = mysqli_insert_id($con);

            if ($id) {
                $sql = "INSERT INTO T_University(ID, Teacher, Subject , Classroom, F_ID_Student) VALUES (NULL, NULL, NULL, NULL, NULL, $id)";
                mysqli_query($con, $sql);
            }
        }
        mysqli_close($con);
    }
    echo "Data Inserted";
?>

您还有其他想法吗?首先,尝试检查id是否返回。如果是,那么问题将出在您的表结构上。您有其他想法吗?首先,尝试检查id是否返回。如果是,那么问题在于您的表结构。