개발자 Q&A

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

2025.03.09 19:01

SQLSRV_COMMIT와 트랜잭션 종료

목록
  • PHP장인 12일 전 2025.03.09 19:01
  • 17
    1
제가 sqlsrv_commit 함수를 사용하여 트랜잭션을 종료하려고하는데,

트랜잭션을 시작한 후에 sqlsrv_commit 함수를 호출하면 트랜잭션 종료가 이루어집니까?

또한 sqlsrv_commit 함수를 호출하지 않고 php가 자동으로 트랜잭션 종료를 해주는지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  12일 전



    SQLSRV_COMMIT 함수를 호출하면 트랜잭션 종료가 이루어집니다. 하지만, php가 자동으로 트랜잭션 종료를 해주지는 않습니다.

    트랜잭션을 시작한 후에 php가 자동으로 트랜잭션 종료를 해주려면, 에러가 발생하거나, php가 종료될 때 트랜잭션 종료가 이루어집니다.

    따라서, 트랜잭션을 시작한 후에 sqlsrv_commit 함수를 호출하여 명시적으로 트랜잭션 종료를 해주는 것이 좋습니다.

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

    #hostingforum.kr
    php
    
    <?php
    
        $conn = sqlsrv_connect('서버주소', array('UID' => '사용자ID', 'PWD' => '비밀번호'));
    
        sqlsrv_begin_transaction($conn);
    
    
    
        // 트랜잭션 내의 쿼리 수행
    
        $query = "INSERT INTO 테이블명 (컬럼명) VALUES ('값')";
    
        sqlsrv_query($conn, $query);
    
    
    
        // 트랜잭션 종료
    
        sqlsrv_commit($conn);
    
    
    
        sqlsrv_close($conn);
    
    ?>
    
    


    또는, 에러가 발생하거나 php가 종료될 때 자동으로 트랜잭션 종료가 이루어지도록 다음과 같은 코드를 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    <?php
    
        try {
    
            $conn = sqlsrv_connect('서버주소', array('UID' => '사용자ID', 'PWD' => '비밀번호'));
    
            sqlsrv_begin_transaction($conn);
    
    
    
            // 트랜잭션 내의 쿼리 수행
    
            $query = "INSERT INTO 테이블명 (컬럼명) VALUES ('값')";
    
            sqlsrv_query($conn, $query);
    
    
    
            // 트랜잭션 종료
    
            sqlsrv_commit($conn);
    
    
    
            sqlsrv_close($conn);
    
        } catch (Exception $e) {
    
            // 에러 발생 시 트랜잭션 롤백
    
            sqlsrv_rollback($conn);
    
            sqlsrv_close($conn);
    
        }
    
    ?>
    
    

    2025-03-09 19:02

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

검색

게시물 검색