Php 如何在mysql数据库的两个不同表中同时插入数据?

Php 如何在mysql数据库的两个不同表中同时插入数据?,php,mysql,session,Php,Mysql,Session,我想同时将数据插入mysql数据库中的两个不同表中,但我的数据只插入到user_signup表中,而没有插入到另一个表中。这是我的密码: <?php //If user is a ministry head if($access_level == 'ministry_head') { $sql="INSERT INTO ministry_head (eemail,mobile_number,fname,mname,lname,access_level,region_name,dis

我想同时将数据插入mysql数据库中的两个不同表中,但我的数据只插入到user_signup表中,而没有插入到另一个表中。这是我的密码:

<?php
//If user is a ministry head
if($access_level == 'ministry_head')
{
    $sql="INSERT INTO ministry_head (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
    $sql="INSERT INTO user_signup (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
    $_SESSION['eemail'] = $eemail;
    header('Location: ministry_head_page.php');             
}           
//If user is a regional head            
else if($access_level == 'regional_head')
{
    $sql="INSERT INTO regional_head (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
    $sql="INSERT INTO user_signup (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
    $_SESSION['eemail'] = $eemail;
    header('Location: regional_head_page.php');             
}           
//if user is general user 
else if($access_level == 'general_user')
{
    $sql="INSERT INTO general_user (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
    $sql="INSERT INTO user_signup (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
    $_SESSION['eemail'] = $eemail;
     header('Location: general_user_page.php');     
}       
//if user is car company    
else if ($access_level == 'car_company')
{
    $sql="INSERT INTO car_company (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
    $sql="INSERT INTO user_signup (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
    $_SESSION['eemail'] = $eemail;  
    header('Location: car_company_page.php');   
}     
if (!mysqli_query($con,$sql))
{  
    die('Error: ' . mysqli_error($con));
}
echo "";
mysqli_clos
e($con); 
} 
?>

将两个不同的字符串分配给一个变量:

$sql="INSERT INTO car_company ...";
$sql="INSERT INTO user_signup ...";
第二行覆盖第一行,因此它不会执行。作为一种解决方法,您可以:

$sql1="INSERT INTO car_company ...";
$sql2="INSERT INTO user_signup ...";

mysqli_query($con,$sql1);
mysqli_query($con,$sql2);
通过适当的错误检查和所有

$sql="INSERT INTO ministry_head (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) 
VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
$sql .="INSERT INTO user_signup (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) 
VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";

您需要使用mysqli_*来完成此操作。假设$conn是您的mysqli连接


数据现在被插入到第一个表“car\u company”中,而不是第二个表“user\u signup”。看看这段代码,我想您只是直接使用来自用户输入的变量。安全噩梦。请阅读准备好的语句并使用它们(在PHP中有不同的方法)我正在使用通过注册表单输入的变量,希望输入的数据存储在不同的表中。好的,然后我将浏览到您的表单并输入
;落桌头顺便说一句,您的数据库方案有缺陷。读到。。您确实不应该在多个表中存储相同的数据,而应该使用外键。
$sql = "INSERT INTO ministry_head (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) 
VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con'); INSERT INTO user_signup (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) 
VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con');";

multi_query($conn,$sql);