2016-02-25 84 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

相关问题