我正在编写应用程序,现在我遇到了问题。
当我使用应用程序注册一个新学生时,我的php脚本上会运行一个Query,并将新学生插入我的数据库。
我现在要做的是,当我注册他时,我希望我的php脚本运行多个查询,以便所有其他表应填充NULL
并且查询应该得到{{ 1}}从新创建的学生将其与其他表(外键)链接。
我尝试使用ID
和mysqli_multiple_query
,但两者都无效。
如何从插入中获取该ID?
这是我的php脚本。
LAST_INSERT_ID()
我希望有人可以帮助我。
答案 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";
?>