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

时间:2016-02-25 17:18:43

标签: php mysql sql

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

我现在要做的是,当我注册他时,我希望我的php脚本运行多个查询,以便所有其他表应填充NULL并且查询应该得到{{ 1}}从新创建的学生将其与其他表(外键)链接。

我尝试使用IDmysqli_multiple_query,但两者都无效。

如何从插入中获取该ID?

这是我的php脚本。

LAST_INSERT_ID()

我希望有人可以帮助我。

2 个答案:

答案 0 :(得分:0)

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

$id = mysqli_insert_id();

,然后执行第二个查询,引用值中的变量。

请注意,如果这些$_POST变量来自用户提交的表单,那么在将它们保存到数据库之前对它们进行一些验证会很有用。也许this回答是一个很好的阅读;)

答案 1 :(得分:0)

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

<?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";
?>