[php] PDO 데이터베이스 트랜잭션

데이터베이스를 다룰 때, 트랜잭션은 데이터 정합성을 유지하는 데 매우 중요합니다. 트랜잭션은 데이터베이스 상태를 안전하게 유지하기 위한 작업의 논리적 단위입니다. PHP에서 PDO를 사용하여 데이터베이스 트랜잭션을 구현하는 방법을 살펴보겠습니다.

1. 데이터베이스 연결 설정

우선, PDO를 사용하여 데이터베이스에 연결해야 합니다. 다음은 MySQL 데이터베이스에 연결하는 예제 코드입니다.

$dsn = 'mysql:host=localhost;dbname=mydatabase';
$username = 'username';
$password = 'password';

try {
    $pdo = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
    echo '데이터베이스 연결 실패: ' . $e->getMessage();
}

2. 트랜잭션 시작과 종료

트랜잭션을 시작하려면 beginTransaction 메서드를 호출하고, 작업을 완료한 후에는 commit 또는 문제가 발생했을 때는 rollback을 호출하여 트랜잭션을 종료합니다.

$pdo->beginTransaction();

try {
    // 여러 데이터베이스 쿼리 수행

    $pdo->commit(); // 모든 쿼리가 성공하면 트랜잭션을 커밋
} catch (Exception $e) {
    $pdo->rollback(); // 오류가 발생하면 트랜잭션을 롤백
}

3. 예외 처리

트랜잭션 내에서 발생하는 예외를 적절하게 처리해야 합니다. 예외가 발생하면 롤백하여 이전 상태로 데이터를 되돌릴 수 있습니다.

4. 데이터베이스 정리

트랜잭션이 종료된 후에는 데이터베이스 리소스를 명시적으로 해제해야 합니다.

$pdo = null; // 데이터베이스 연결 해제

요약

PDO를 사용하여 데이터베이스 트랜잭션을 구현하는 것은 데이터 무결성과 안전한 데이터 처리를 보장하는 데 큰 도움이 됩니다. 트랜잭션은 여러 쿼리를 하나의 논리적 단위로 묶어 데이터베이스 작업이 안전하게 수행되도록 합니다.

이러한 작업을 통해 데이터베이스 조작 시 발생할 수 있는 데이터 불일치 문제를 방지할 수 있으며, 갑작스러운 오류에 대비하여 데이터의 정합성을 유지할 수 있습니다.

참고 자료