2016-10-07 10 views
0

LAST_INSERT_ID에 문제가 있습니다.PHPMYADMIN LAST_INSERT_ID가 0을 반환합니다.

CREATE TABLE for_test(
id_test INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
test_name VARCHAR(30) 
); 

INSERT INTO for_test (test_name) VALUES ('test1'); 
INSERT INTO for_test (test_name) VALUES ('test2'); 

나는 성공적으로 두 개의 레코드 추가 - 아직 SELECT LAST_INSERT_ID()는 여전히 0이 (심지어 문제가 있다면이 InnoDB의 사용) 반환

사람이 내가 잘못 걸 말해 주시겠습니까?

+0

mysql_insert_id()를 사용 해보셨습니까? – atoms

+1

@atoms : mysql_insert_id는 PHP 기능입니다. phpmyadmin에서 은 항상 0을 반환합니다. 절차/기능에 사용하면 결과를 얻을 수 있습니다. – Riad

+0

참고 사항 : last_insert_id는 다른 테이블의 다른 사람이 마지막으로 삽입 한 ID 일 수도 있습니다. ** 거래를 사용하지 않는 한! –

답변

1

다른 쿼리를 시도해서는 안하고 모두가 함께 실행해야합니다. 조심해. 당신이 그것을 처리 할 수없는 경우 또한 당신은

SELECT id FROM for_test ORDER BY id DESC LIMIT 1; 

을 사용할 수 있습니다 그리고 당신은이 설명서

How to use LAST_INSERT_ID()

+1

답변 해 주셔서 감사합니다. :) – Petrus

+0

나는 그것을 기쁘게 생각합니다. 그래서 "이 대답은 유용한 버튼입니다"를 클릭하시기 바랍니다. 멋진 개발 :) –

0

당신은 mysqli 예를 삽입 한 후

$sql = "INSERT INTO user (firstname, lastname, email) 
VALUES ('test', 'test', '[email protected]')"; 

if ($conn->query($sql) === TRUE) { 
    $last_id = $conn->insert_id; 
    echo "New record created successfully. Last inserted ID is: " . $last_id; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 
+0

Riad가 말했듯이 - mysqli는 PHP 함수이고 PHPMyAdmin 콘솔을 사용합니다 – Petrus

0
CREATE TABLE for_test(
id_test INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
test_name VARCHAR(30) 
); 

INSERT INTO for_test (test_name) VALUES ('test1'); 
INSERT INTO for_test (test_name) VALUES ('test2'); 
SELECT LAST_INSERT_ID(); 

주를 읽을 수 있습니다 : 그것은 엔진과 함께 일하고있어 - phpMyAdmin을에 이노. 동일한 문제가 계속 발생하면 정확한 스냅 샷을 추적 할 수 있도록 오류 스냅 샷을 보내주십시오.

희망이 도움이 될 것입니다!