2016-08-29 84 views
4

我如何獲得一個行的id後,我只是執行的存儲過程,而插入的航班信息,以我的表,我想每一次插入,我提出後得到的ID。但我無法找到其他方法可以爲我工作。我想獲取auto_increment上的flight_id。我存儲過程

mysqli_query($conn,"CALL addschedule('$airlineID','$from','$to','$departDate','$arriveDate','$departTime','$arrivalTime','$price')"); 

$last_id = mysqli_insert_id($conn); 
echo $last_id; 

運行mysqli_insert_id只返回我的值爲0,但我的最後一次飛行ID爲3。任何人都可以給我一個明確的解釋嗎?

回答

3

mysqli_insert_id - 返回自動生成的過去查詢

的mysqli_insert_id()函數返回由查詢與具有AUTO_INCREMENT屬性的列生成上的表中的ID用於標識。如果最後一個查詢不是INSERT或UPDATE語句,或者如果修改後的表沒有包含AUTO_INCREMENT屬性的列,則此函數將返回零。

因此請檢查您是否已將AUTO_INCREMENT屬性設置爲您的id字段。

,或者必須設置AUTO_INCREMENT。這個示例代碼可能會幫助你。

<?php 
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 


$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)"; 
$mysqli->query($query); 

/* In op's case 
mysqli->query($conn,"CALL addschedule('$airlineID','$from','$to','$departDate','$arriveDate','$departTime','$arrivalTime','$price')"); 
*/ 

printf ("New Record has id %d.\n", $mysqli->insert_id); 


/* close connection */ 
$mysqli->close(); 
?> 

答案2

在你的SP

INSERT INTO table VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000); 
select LAST_INSERT_ID(); 

在你的PHP代碼

$result=mysqli_query($conn,"CALL addschedule('$airlineID','$from','$to','$departDate','$arriveDate','$departTime','$arrivalTime','$price')"); 

echo "Last ID: ".$result; 

這可能會做你的工作。

PS:我沒有測試此代碼。希望工作

+0

是的,它是自動遞增。 – TheAsker101

+0

好的。然後看到我編輯的答案。 – Archish

+0

它仍然返回我0.存儲過程後它工作嗎? – TheAsker101