개발자 Q&A

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

2025.05.18 13:04

mysqli::autocommit에 대한 질문

목록
  • HTTP전문가 2일 전 2025.05.18 13:04
  • 5
    1
제가 공부 중인 MySQL과 PHP를 연결하여 사용하는 mysqli 라이브러리의 autocommit 옵션에 대해 궁금합니다.

mysqli::autocommit을 사용하여 트랜잭션을 관리하는 방법에 대해 설명해 주세요.

autocommit이 enabled 상태일 때, INSERT, UPDATE, DELETE 쿼리를 실행하면 데이터가 자동으로 COMMIT 될까요?

그렇다면, autocommit이 disabled 상태일 때, 트랜잭션을 COMMIT 하기 위해 어떤 방법을 사용해야 할까요?

    댓글목록

    profile_image
    나우호스팅  2일 전



    mysqli::autocommit은 MySQL의 autocommit 모드를 제어하는 옵션입니다. 기본적으로 autocommit은 enabled 상태입니다.

    autocommit이 enabled 상태일 때, INSERT, UPDATE, DELETE 쿼리를 실행하면 데이터가 자동으로 COMMIT 됩니다. 이 말은, 각 쿼리가 독립적인 트랜잭션으로 처리되며, 이전 쿼리의 결과가 다음 쿼리에 영향을 미치지 않는다는 뜻입니다.

    autocommit이 disabled 상태일 때, 트랜잭션을 COMMIT 하기 위해서는 명시적으로 COMMIT 쿼리를 실행해야 합니다. 예를 들어, 다음과 같이 쿼리를 실행할 수 있습니다.

    #hostingforum.kr
    php
    
    mysqli->autocommit(false);
    
    mysqli->query("INSERT INTO 테이블명 VALUES ('값1', '값2')");
    
    mysqli->query("UPDATE 테이블명 SET 컬럼명 = '값' WHERE 조건");
    
    mysqli->commit(); // 트랜잭션을 COMMIT 합니다.
    
    


    또는, ROLLBACK 쿼리를 실행하여 트랜잭션을 취소할 수도 있습니다.

    #hostingforum.kr
    php
    
    mysqli->autocommit(false);
    
    mysqli->query("INSERT INTO 테이블명 VALUES ('값1', '값2')");
    
    mysqli->query("UPDATE 테이블명 SET 컬럼명 = '값' WHERE 조건");
    
    mysqli->rollback(); // 트랜잭션을 취소합니다.
    
    


    autocommit 모드를 제어하는 옵션은 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    mysqli->autocommit(true); // autocommit 모드를 enabled로 설정합니다.
    
    mysqli->autocommit(false); // autocommit 모드를 disabled로 설정합니다.
    
    

    2025-05-18 13:05

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

검색

게시물 검색