[php] PDO와 트랜잭션 롤백

PHP의 PDO (PHP Data Objects) 확장을 사용하면 데이터베이스 작업을 보다 쉽게 처리할 수 있습니다. 트랜잭션은 데이터베이스 작업 중 에러가 발생했을 때 모든 변경 사항을 롤백할 수 있는 중요한 기능입니다.

이 블로그 포스트에서는 PHP에서 PDO를 사용하여 트랜잭션을 시작하고 롤백하는 방법을 살펴볼 것입니다.

PDO를 사용한 데이터베이스 연결

PDO를 사용하여 데이터베이스에 연결하려면 다음과 같이 PDO 객체를 생성합니다.

<?php
$dsn = 'mysql:host=localhost;dbname=test';
$username = 'username';
$password = 'password';
$options = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
];

try {
    $pdo = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
?>

트랜잭션 시작과 롤백

다음은 PDO를 사용하여 트랜잭션을 시작하고 롤백하는 코드 예제입니다.

<?php
try {
    $pdo->beginTransaction();
    
    // 여기에 데이터베이스 작업 수행

    $pdo->commit();
} catch (PDOException $e) {
    $pdo->rollBack();
    echo "Transaction failed: " . $e->getMessage();
}
?>

위의 예제에서, beginTransaction() 메서드는 트랜잭션을 시작하고, commit() 메서드는 모든 작업을 커밋하여 변경을 반영합니다. 만약 에러가 발생하면 rollBack() 메서드를 사용하여 모든 변경 사항을 롤백합니다.

결론

PHP에서 PDO를 사용하여 트랜잭션을 롤백하는 방법에 대해 알아보았습니다. 이를 통해 데이터베이스 작업 중 에러가 발생한 경우 데이터의 일관성을 유지하면서 롤백할 수 있습니다. PDO를 사용하여 안정적이고 효율적인 데이터베이스 처리를 구현할 수 있습니다.

이상으로 이번 블로그 포스트를 마치도록 하겠습니다. 감사합니다.

참고 자료