2016-02-25 109 views
1

我正在編程一個App,現在我有一個問題。
當我向應用程序註冊新學生時,Query會在我的PHP腳本上運行,並將新學生插入到我的數據庫中。插入後獲取ID並將其作爲值保存到另一個表中

我現在想要做的是,當我註冊他時,我希望我的PHP腳本運行多個查詢,以便所有其他表應該填充NULL,查詢應該從新創建的ID學生將其與其他表格鏈接(外鍵)。

我試了mysqli_multiple_queryLAST_INSERT_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"; 
?> 

我希望有人能幫助我。

回答

0

不要連接兩個查詢。執行第一個,最後一個ID保存到一個變量像

$id = mysqli_insert_id(); 

,然後執行第二查詢參照值之間的變量。

請注意,如果這些$_POST變量來自用戶提交的表單,那麼在將它們保存到數據庫之前對它們進行驗證會很有用。也許this答案將是一個不錯的閱讀;)

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

nope,沒有工作:S – Natsu

+0

你有什麼想法嗎? – Natsu

+0

首先,嘗試檢查該ID是否被返回。如果是,那麼問題將出現在你的表格結構中。 – Inducesmile

相關問題