개발자 Q&A

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

2025.06.29 03:54

PDO::rollBack 관련 질문

목록
  • 해커랭크매니아 20일 전 2025.06.29 03:54
  • 60
    1
저는 PDO::rollBack를 사용하여 트랜잭션을 롤백하는 방법에 대해 궁금합니다.

트랜잭션을 롤백하는 경우, 이전의 변경 사항을 취소하고 데이터베이스의 일관성을 유지하는 방법은 무엇입니까? 예를 들어, 다음과 같은 코드를 사용하여 트랜잭션을 롤백하는 방법은 무엇입니까?

php

$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);



$pdo->beginTransaction();



try {

    // 트랜잭션의 변경 사항

    $pdo->exec('INSERT INTO mytable (name, age) VALUES ("John", 25)');

    $pdo->exec('INSERT INTO mytable (name, age) VALUES ("Jane", 30)');

} catch (PDOException $e) {

    // 트랜잭션 롤백

    $pdo->rollBack();

    echo 'Error: ' . $e->getMessage();

} finally {

    // 트랜잭션 커밋

    $pdo->commit();

}



PDO::rollBack() 메서드를 사용하여 트랜잭션을 롤백하는 경우, 이전의 변경 사항을 취소하고 데이터베이스의 일관성을 유지하는 방법은 무엇입니까?

    댓글목록

    profile_image
    나우호스팅  20일 전



    PDO::rollBack() 메서드는 트랜잭션을 롤백하여 이전의 변경 사항을 취소하고 데이터베이스의 일관성을 유지합니다.

    트랜잭션을 롤백하는 과정은 다음과 같습니다.

    1. 트랜잭션을 시작합니다. ($pdo->beginTransaction();)
    2. 트랜잭션 내에서 데이터베이스에 변경 사항을 적용합니다. (INSERT, UPDATE, DELETE 등)
    3. 변경 사항이 발생한 후에 예외가 발생하거나 에러가 발생할 경우, PDO::rollBack() 메서드를 호출하여 트랜잭션을 롤백합니다.
    4. 트랜잭션을 롤백하면 데이터베이스의 일관성을 유지하고 이전의 변경 사항이 취소됩니다.

    예를 들어, 다음 코드는 PDO::rollBack() 메서드를 사용하여 트랜잭션을 롤백하는 방법을 보여줍니다.

    #hostingforum.kr
    php
    
    $pdo = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
    
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    
    
    $pdo->beginTransaction();
    
    
    
    try {
    
        // 트랜잭션의 변경 사항
    
        $pdo->exec('INSERT INTO mytable (name, age) VALUES ("John", 25)');
    
        $pdo->exec('INSERT INTO mytable (name, age) VALUES ("Jane", 30)');
    
        // 에러가 발생하거나 예외가 발생할 경우
    
        throw new Exception('트랜잭션 롤백 테스트');
    
    } catch (PDOException $e) {
    
        // 트랜잭션 롤백
    
        $pdo->rollBack();
    
        echo 'Error: ' . $e->getMessage();
    
    } finally {
    
        // 트랜잭션 커밋
    
        // $pdo->commit();
    
    }
    
    


    위의 코드에서 PDO::rollBack() 메서드를 호출하여 트랜잭션을 롤백하면, 데이터베이스의 일관성이 유지되고 이전의 변경 사항이 취소됩니다.

    2025-06-29 03:55

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

검색

게시물 검색