2016-08-29 2 views
4

방금 ​​내 테이블에 비행 정보를 삽입하는 저장 프로 시저를 실행했고 내가 만든 모든 삽입 후에 ID를 얻고 싶었습니다. 그러나 나는 나를 위해 일할 수있는 다른 방법을 찾을 수 없었습니다. auto_increment에있는 flight_id를 얻고 싶었습니다.내가 프로 시저를 저장 한 후에 행 ID를 얻는 방법

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

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

나만 0의 값을 반환하지만 내 마지막 비행 ID가 3 사람이 나에게 명확한 설명을 줄 수 있었다 mysqli_insert_id 실행?

답변

3

mysqli_insert_id은 - 자동차가 지난 쿼리

mysqli_insert_id() 함수는 열이 AUTO_INCREMENT 속성을 갖는 테이블에 쿼리에 의해 생성 된 ID를 반환에 사용되는 ID를 생성 돌려줍니다. 마지막 쿼리가 INSERT 또는 UPDATE 문이 아니거나 수정 된 테이블에 AUTO_INCREMENT 특성이있는 열이 없으면이 함수는 0을 반환합니다.

AUTO_INCREMENT 속성을 id 필드로 설정했는지 확인하십시오.

또는 AUTO_INCREMENT로 설정 한 경우 이 샘플 코드는 도움이 될 것입니다. 당신의 SP 당신에

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

PHP 코드에서

<?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

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

echo "Last ID: ".$result; 

이 작업을 할 수 있습니다.

PS :이 코드를 테스트하지 않았습니다. 희망을 가지고 일하십시오

+0

예 자동 증가 중입니다. – TheAsker101

+0

좋습니다. 내 편집 된 답변을 참조하십시오. – Archish

+0

여전히 저장 프로 시저가 작동합니까? – TheAsker101

관련 문제