사용자 테이블에 행을 삽입하여 새 사용자를 등록합니다. user_id 필드 (자동 증가)를 가져 와서 다른 쿼리에서 사용자를 원합니다. 해결책은 여기에 제공됩니다 : How to get the ID of INSERTed row in mysql?하지만 새로운 행을 삽입 한 직후에 다른 사용자가 등록되면 어떤 일이 벌어 질지 궁금합니다. 그리고 PHP 코드에서 mysql_insert_id() 함수를 실행하기 전에 어떻게됩니까? 함수는 무엇을 반환할까요?삽입 된 행의 ID 가져 오기
답변
mysql_insert_id()
은 현재 연결 (사용자 세션과 관련된)에 특정한 ID 인 auto_increment
을 반환합니다. 따라서, 그런 유형의 경쟁 조건에서는 안전합니다. 즉, 삽입이 서로 겹치는 두 개의 동시 연결 사용자는 간섭없이 항상 자신의 세션에 대한 올바른 ID를 반환합니다.
int mysql_insert_id ([ resource $link_identifier ])
은 (는) 친구입니다. PHP는 문서에서
주 :
MySQL의 연결. 링크 식별자가 지정되지 않으면, mysql_connect()에 의해 열린 마지막 링크가 가정된다. 그러한 링크가 발견되지 않으면, mysql_connect()가 인수없이 호출 된 것처럼 링크를 생성하려고합니다. 연결이 없거나 설정되지 않으면 E_WARNING 수준의 오류가 생성됩니다.
성공시 이전 쿼리로 AUTO_INCREMENT 열에 대해 생성 된 ID. 이전 쿼리가 AUTO_INCREMENT 값을 생성하지 않으면 0, MySQL 연결이 설정되지 않은 경우 FALSE입니다.
mysql_insert_id()는 원시 MySQL C API 함수 mysql_insert_id()의 반환 유형을 long (PHP의 int) 형식으로 변환합니다. AUTO_INCREMENT 컬럼의 컬럼 유형이 BIGINT (64 비트) 일 경우 변환으로 인해 잘못된 값이 생길 수 있습니다. 대신 SQL 쿼리에서 내부 MySQL SQL 함수 LAST_INSERT_ID()를 사용하십시오. PHP의 최대 정수 값에 대한 자세한 내용은 정수 설명서를 참조하십시오.
마지막으로 수행 된 쿼리에서 mysql_insert_id()가 작동하기 때문에 값을 생성 한 쿼리 바로 다음에 mysql_insert_id()를 호출해야합니다.
MySQL SQL 함수 LAST_INSERT_ID()의 값은 항상 가장 최근에 생성 된 AUTO_INCREMENT 값을 포함하며 쿼리간에 재설정되지 않습니다.
- 1. 방금 삽입 한 행의 ID 가져 오기
- 2. 삽입 후 생성 된 ID 가져 오기
- 3. 마지막으로 삽입 된 레코드의 ID 가져 오기
- 4. 방금 MySQL에 INSERT 된 행의 일련 번호 ID 가져 오기
- 5. ID 가져 오기 또는 삽입 ID 용
- 6. 삽입/업데이트 쿼리에서 마지막으로 삽입 된 ID 가져 오기 받기
- 7. CakePHP의 saveAll()에서 삽입 된 ID 가져 오기
- 8. 트리거에서 삽입/업데이트 된 행의 ID
- 9. Python/sqlite : 새로 삽입 된 행의 PK 가져 오기
- 10. SQLite iPhone 마지막 삽입 ID 가져 오기
- 11. 트랜잭션의 모든 삽입 ID 가져 오기
- 12. 삽입 할 때 현재 삽입 된 행의 ID를 가져 옵니까?
- 13. SQL Server 2008에서 마지막으로 삽입 된 ID 가져 오기
- 14. 오라클 db에 마지막으로 삽입 된 레코드의 ID 가져 오기
- 15. Java에서 데이터베이스 테이블의 마지막으로 삽입 된 레코드 ID 가져 오기?
- 16. 마지막으로 삽입 된 값에 대한 ID 가져 오기
- 17. 마지막으로 삽입 된 행 ID 가져 오기 (SQL 문 사용)
- 18. 트랜잭션 범위 외부에 삽입 된 모든 ID 가져 오기
- 19. 마지막으로 삽입 된 인덱스 가져 오기 mysql
- 20. mysql에서 마지막으로 삭제 된 ID 가져 오기
- 21. 삽입 된 행의 ID를 얻기
- 22. 새로 삽입 된 요소에서 텍스트 가져 오기
- 23. 행의 좌표를 배열로 가져 오기
- 24. 문자열에서 ID 가져 오기
- 25. 저장 프로 시저에서 마지막으로 삽입 된 행의 ID 반환
- 26. 그룹화 된 제품 ID 가져 오기
- 27. 드래그 된 항목의 ID 가져 오기 JQuery
- 28. 복제 된 요소의 ID 가져 오기
- 29. 삭제 된 카테고리의 ID 가져 오기 [Magento]
- 30. 명명 된 범위에서 요소의 ID 가져 오기
@AlirezaNoori PHP가 아닌 -이 함수는 원시 MySQL 함수'LAST_INSERT_ID()'를 호출하므로 실제로이 함수를 관리하는 데이터베이스입니다. –
감사합니다. 오, 예, 알았습니다 (MYSQL 문서를 읽었습니다).하지만 잘못 말했습니다. 죄송합니다. 나를 고쳐 줘서 고마워. –