개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.02 04:46

PDO::lastInsertId 함수에 관한 질문

목록
  • 커밋광 17일 전 2025.07.02 04:46
  • 29
    1
저는 PDO::lastInsertId 함수를 사용하여 마지막 INSERT 쿼리의 ID를 가져오려고 합니다.
하지만, 이 함수는 특정 테이블에 INSERT한 ID만 가져올 수 있는가요?
또한, 이 함수는 여러 INSERT 쿼리를 실행한 후 마지막 ID를 가져올 수 있는가요?

    댓글목록

    profile_image
    나우호스팅  17일 전



    PDO::lastInsertId 함수는 마지막 INSERT 쿼리의 ID를 가져올 수 있습니다. 하지만, 이 함수는 특정 테이블에 INSERT한 ID만 가져올 수 있습니다. 예를 들어, 두 개의 테이블에 INSERT 쿼리를 실행한 후, PDO::lastInsertId 함수를 사용하여 마지막 ID를 가져오려면, 두 개의 테이블에 INSERT 쿼리를 실행한 순서에 따라 ID를 가져올 수 있습니다.

    만약, 여러 INSERT 쿼리를 실행한 후 마지막 ID를 가져올 필요가 있다면, PDO::lastInsertId 함수를 사용하기 전에, INSERT 쿼리를 실행한 후 ID를 저장한 변수를 사용하여 마지막 ID를 가져올 수 있습니다.

    예를 들어, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    php
    
    $stmt = $pdo->prepare("INSERT INTO 테이블1 VALUES ('값1')");
    
    $stmt->execute();
    
    
    
    $stmt = $pdo->prepare("INSERT INTO 테이블2 VALUES ('값2')");
    
    $stmt->execute();
    
    
    
    $lastId1 = $pdo->lastInsertId();
    
    $lastId2 = $pdo->lastInsertId();
    
    
    
    echo "테이블1의 마지막 ID: $lastId1";
    
    echo "테이블2의 마지막 ID: $lastId2";
    
    


    또는, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    php
    
    $stmt = $pdo->prepare("INSERT INTO 테이블1 VALUES ('값1')");
    
    $stmt->execute();
    
    
    
    $stmt = $pdo->prepare("INSERT INTO 테이블2 VALUES ('값2')");
    
    $stmt->execute();
    
    
    
    $lastId = $pdo->lastInsertId();
    
    
    
    echo "마지막 ID: $lastId";
    
    


    위의 예제에서, 두 번째 예제는 첫 번째 예제보다 간단하고 직관적입니다.

    2025-07-02 04:47

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,091건 / 25 페이지

검색

게시물 검색