개발자 Q&A

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

2025.07.03 12:53

mysqli::begin_transaction 관련 질문

목록
  • 알고리즘광 10시간 전 2025.07.03 12:53 새글
  • 3
    1
제가 MySQLi를 사용하여 데이터베이스 작업을 수행 중인데, transaction을 사용하여 데이터의 일관성을 유지하려고 합니다. 그러나 mysqli::begin_transaction 함수의 사용법이 조금 헷갈립니다.

mysqli::begin_transaction 함수를 호출하여 transaction을 시작할 때, 자동으로 commit이 발생하는지, 반드시 mysqli::commit 함수를 호출해야 하는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  10시간 전



    mysqli::begin_transaction 함수를 호출하여 트랜잭션을 시작하면, 자동으로 commit이 발생하지 않습니다. 반드시 mysqli::commit 함수를 호출해야 트랜잭션의 변경 사항이 데이터베이스에 반영됩니다.

    만약 에러나 롤백이 발생하는 경우, mysqli::rollBack 함수를 호출하여 트랜잭션의 변경 사항을 취소할 수 있습니다.

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

    #hostingforum.kr
    php
    
    $mysqli = new mysqli("localhost", "username", "password", "database");
    
    
    
    if ($mysqli->begin_transaction()) {
    
        // 트랜잭션 내의 쿼리 수행
    
        $mysqli->query("INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2')");
    
        
    
        // 트랜잭션의 변경 사항을 데이터베이스에 반영
    
        $mysqli->commit();
    
    } else {
    
        // 트랜잭션의 변경 사항을 취소
    
        $mysqli->rollBack();
    
    }
    
    


    mysqli::begin_transaction 함수를 호출할 때, 옵션을 지정할 수 있습니다. 예를 들어, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $mysqli->begin_transaction(MYSQLI_TRANS_START_READ_ONLY);
    
    


    이 옵션은 트랜잭션 내에서 읽기 전용으로 데이터를 조회할 수 있도록 합니다.

    2025-07-03 12:54

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

검색

게시물 검색