2015-07-27 6 views
0

Я хочу вставлять данные в две разные таблицы в базе данных mysql одновременно, но мои данные вставляются только в таблицу user_signup, а не в другую таблицу. Это мои коды:Как я могу вставлять данные в две разные таблицы в базе данных mysql одновременно?

<?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); 
} 
?> 
+0

глядя на ** ** этого кода, я думаю, вы просто использовать переменные непосредственно, вводимых пользователем. Кошмар безопасности. Пожалуйста, прочитайте о * подготовленных операторах * и используйте их (есть разные способы сделать это в PHP) –

+0

Я использую переменные, которые вводятся через форму регистрации и хотят, чтобы данные, введенные для хранения в разных таблицах. –

+0

Хорошо, тогда я перейду к вашей форме и введите ''; DROP TABLE Ministry_head; ' –

ответ

2

присваиваются две разные строки одной переменной:

$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); 

с соответствующей проверкой ошибок и все.

+0

Данные теперь вставлены в первую таблицу 'car_company', а не во вторую таблицу 'user_signup'. –

0
$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')"; 

ИЛИ

$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); 

вам нужно использовать mysqli_ * для этого. предполагаем, что $ соед Ваш MySQLi соединение

http://www.php.net/manual/en/mysqli.quickstart.multiple-statement.php

Смежные вопросы