2016-08-07 74 views
-1

我有兩個提交按鈕,它們從兩個表單中獲取值並將它們插入到數據庫中。問題是我需要從第一個表(課程)中獲取最後一個插入的ID插入第二個表(學生),但它不起作用。這是我做的:LAST_INSERT_ID不起作用

<?php 
$course_name = // the value of the field for the course name 
$student_name = // The first name of the student 
$student_age = // The age of the student 
$last_id = // The last id of table courses 
    if(isset($_POST['submit1'])){ 
      $query1 = "INSERT INTO courses (course_name)VALUES ('$course_name')"; 
       if ($object->query($query1) === true){ 
        $last_id = LAST_INSERT_ID(); 
        $good = "the course has been created"; 
       } 
       else{ 
        $bad = "Error: " .$query1.$object->error; 
       } 
    } 

if(isset($_POST['submit2'])){ 
      $query2 = "INSERT INTO students (course_id,student_name, student_age)VALUES ('last_id','$student_name','student_age')"; 
       if ($object->query($query2) === true){ 

        $good = "the student has been created"; 
       } 
       else{ 
        $bad = "Error: " .$query2.$object->error; 
       } 
    } 
?> 

我不知道爲什麼它不起作用。

+0

一件事,你在這些' 'last_id', '$ student_name' 的2冷落'$'跡象, 'student_age' '在你的價值中。如果這是你的實際代碼,那很可能是你的代碼失敗的原因。這些應該讀作''$ last_id','$ student_name','$ student_age''。所以,做出這些改變,然後回來告訴我們問題是什麼;你從來沒有提到什麼不起作用。 –

+0

我們也不知道您的變量和/或POST數組是否具有值,以及它們是否正確。我不會一直堅持幾個小時,所以你需要直接ping我。 –

+0

我看到你有一個(壞)習慣沒有迴應你的問題留下的評論。我已經放棄了這個,請向下面給你留下一個答案的人問一下,我會通過這個。祝你好運。 –

回答

1

你還沒有提到,如果你使用PDO或mysqli等等等等。如果它是mysqli它$mysqli->insert_id;

if ($object->query($query1) === true){ 
     $last_id = $object->insert_id 
     $good = "the course has been created"; 
} 

OTH,如果你正在使用PDO是lastInsertId

if ($object->query($query1) === true){ 
     $last_id = $object->lastInsertId() 
     $good = "the course has been created"; 
} 
+0

這是我正在使用的mysqli。我不知道它爲什麼仍然不起作用的原因。謝謝你的幫助。 – princesse

+0

請不要用這個詞不起作用。總是給出完整的錯誤 – e4c5

+0

早上好!這是它甚至不會顯示任何錯誤的問題。 – princesse