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是否返回。如果是,那么问题在于您的表结构。