개발자 Q&A

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

2025.07.06 20:42

PDO::lastInsertId() 함수에 대한 질문

목록
  • JetpackCompose마… 10일 전 2025.07.06 20:42
  • 14
    1
제가 현재 PHP의 PDO를 사용하여 데이터베이스에 INSERT 쿼리를 실행하고 있습니다.
이때, PDO::lastInsertId() 함수를 사용하여 마지막으로 INSERT 된 ID를 얻으려고 하는데요.
하지만, 이 함수가 INSERT 쿼리가 성공적으로 실행되었을 때만 ID를 반환하는 것인지는 알 수 없는데요.
혹시 INSERT 쿼리가 실패했을 때도 ID를 반환하나요? 아니면 성공적으로 INSERT 된 경우에만 ID를 반환하나요?

    댓글목록

    profile_image
    나우호스팅  10일 전



    PDO::lastInsertId() 함수는 INSERT 쿼리가 성공적으로 실행되었을 때만 ID를 반환합니다.

    이 함수는 INSERT 쿼리가 실패했을 때도 ID를 반환하지 않습니다.

    만약 INSERT 쿼리가 실패하면, PDO::lastInsertId() 함수는 0을 반환합니다.

    그러나, INSERT 쿼리가 성공적으로 실행되었지만, AUTO_INCREMENT가 설정되지 않은 경우에도 PDO::lastInsertId() 함수는 0을 반환합니다.

    따라서, INSERT 쿼리가 성공적으로 실행되었는지 확인하기 위해서는 try-catch 블록을 사용하여 예외를 처리해야 합니다.

    예를 들어, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    try {
    
        $stmt = $pdo->prepare('INSERT INTO 테이블명 (컬럼명) VALUES (:값)');
    
        $stmt->execute([':값' => '값']);
    
        $lastInsertId = $pdo->lastInsertId();
    
    } catch (PDOException $e) {
    
        // 예외 처리
    
    }
    
    


    이러한 방법으로, INSERT 쿼리가 성공적으로 실행되었는지 확인하고, 마지막으로 INSERT 된 ID를 얻을 수 있습니다.

    2025-07-06 20:43

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

검색

게시물 검색