실제로 둘 사이에는 차이가 있습니다. LAST_INSERT_ID()는 bigint 값의 ID를 반환할 수 있습니다. 그러나 mysql_insert_id는 int를 반환합니다.
ID가 unsigned int 또는 bigint인 경우. 따라서 반환된 내용이 잘못되었을 수도 있습니다. 대신 LAST_INSERT_ID()를 사용하세요.
0을 반환하는 친구도 있습니다. 실제로 LAST_INSERT_ID()는 AUTO_INCREMENT의 ID를 반환합니다.
테이블 구조에 AUTO_INCREMENT가 설정되어 있지 않으면 반환할 수 없습니다.
아직도 0을 리턴하시는 분들이 계십니다. 그렇다면 Insert Delay 기능이 사용되었는지 확인하셔야 합니다. 이 경우 즉시 반환 id 값은 반환되지 않습니다.
많은 사람들이 이 last_insert_id를 대체하기 위해 select max(id) ...를 사용하는 것을 좋아합니다. 실제로 select max(id)는 스레드로부터 안전하지 않습니다.
다른 스레드가 새 데이터를 삽입할 가능성이 높습니다. 지난번에 입력하신 아이디를 찾을 수 없습니다. 그리고 last_insert_id는 mysql 연결에 해당합니다. 즉,
은 현재 스레드에 해당하며 다른 스레드의 방해를 받지 않습니다. 예를 들어 데이터베이스에 이상한 오류가 발생하면 A 데이터의 정보가 업데이트되어야 하는데
결과적으로 B 데이터가 업데이트되어 때로는 맞을 때도 있고 틀릴 때도 있습니다. 사람이 많을 때는 심각합니다. select max(id)가 사용되었는지 확인하세요.
이상에서는 관련 내용을 포함하여 MYSQL 팁 - LAST_INSERT_ID를 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.