개발자 Q&A

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

2025.03.06 02:22

getLastInsertId 함수 사용 시 오류가 발생하는 이유

  • 최적화마스터 12일 전 2025.03.06 02:22
  • 9
    1
저는 최근에 PHP에서 getLastInsertId 함수를 사용하던 중 오류가 발생했습니다. getLastInsertId 함수는 마지막으로 실행된 INSERT, REPLACE 또는 UPDATE 쿼리의 ID를 반환하는 함수입니다. 하지만 저는 select 쿼리를 실행한 후에 getLastInsertId 함수를 사용했더니 오류가 발생했습니다.

getLastInsertId 함수를 사용할 때 select 쿼리 실행 후에 오류가 발생하는 이유는 무엇이며, 이러한 오류를 해결하는 방법은 무엇입니까?

    댓글목록

    profile_image
    나우호스팅  12일 전



    getLastInsertId 함수는 마지막으로 실행된 INSERT, REPLACE 또는 UPDATE 쿼리의 ID를 반환하는 함수입니다. 하지만 select 쿼리 실행 후에 getLastInsertId 함수를 사용하면 오류가 발생하는 이유는 select 쿼리는 데이터를 읽기만 하는 쿼리이기 때문에 INSERT, REPLACE 또는 UPDATE 쿼리가 실행되지 않기 때문입니다.

    따라서 select 쿼리 실행 후에 getLastInsertId 함수를 사용하고 싶다면, INSERT, REPLACE 또는 UPDATE 쿼리를 먼저 실행한 후에 getLastInsertId 함수를 사용해야 합니다.

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

    #hostingforum.kr
    php
    
    // INSERT 쿼리를 먼저 실행합니다.
    
    $db->exec('INSERT INTO 테이블명 (컬럼명1, 컬럼명2) VALUES (값1, 값2)');
    
    
    
    // getLastInsertId 함수를 사용합니다.
    
    $lastInsertId = $db->lastInsertId();
    
    
    
    echo $lastInsertId;
    
    


    또는, INSERT 쿼리를 select 쿼리와 함께 한 번에 실행할 수도 있습니다.

    #hostingforum.kr
    php
    
    // INSERT 쿼리를 select 쿼리와 함께 한 번에 실행합니다.
    
    $db->exec('INSERT INTO 테이블명 (컬럼명1, 컬럼명2) VALUES (값1, 값2) RETURNING id');
    
    
    
    // getLastInsertId 함수를 사용합니다.
    
    $lastInsertId = $db->lastInsertId();
    
    
    
    echo $lastInsertId;
    
    


    이러한 방법으로 getLastInsertId 함수를 사용할 수 있습니다.

    2025-03-06 02:23

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

검색

게시물 검색