본문 바로가기
카테고리 없음

PHP PDO로 트랜잭션(Transaction) 처리하는 방법

by 오디와이 2025. 4. 30.

 

PHP에서 데이터베이스 작업 시, 여러 쿼리를 실행하다가 중간에 오류가 발생하면 데이터가 꼬일 수 있어요. 이럴 때 트랜잭션(Transaction)을 사용하면 데이터의 안정성을 지킬 수 있습니다.

📌 트랜잭션(Transaction)이란?

쉽게 말해 여러 작업을 하나의 묶음으로 처리하는 거예요. 모든 쿼리가 성공해야만 최종 반영하고, 하나라도 실패하면 모두 취소(Rollback)할 수 있어 데이터 일관성을 유지할 수 있습니다.

✅ PDO로 트랜잭션 사용하는 방법

  1. 트랜잭션 시작
    $pdo->beginTransaction();
  2. 쿼리 실행
    $pdo->exec("SQL문");
  3. 모두 성공하면 커밋
    $pdo->commit();
  4. 실패하면 롤백
    $pdo->rollBack();

📌 예제 코드

<?php
try {
  $pdo->beginTransaction();

  // 회원 정보 수정
  $pdo->exec("UPDATE members SET point = point - 100 WHERE id = 1");

  // 포인트 내역 기록
  $pdo->exec("INSERT INTO points (member_id, amount) VALUES (1, -100)");

  // 모두 성공했으면 커밋
  $pdo->commit();

  echo "처리 성공!";
} catch (Exception $e) {
  // 하나라도 실패하면 롤백
  $pdo->rollBack();
  echo "오류 발생 : " . $e->getMessage();
}
?>

📌 정리

트랜잭션은 회원가입, 결제, 포인트 적립 같은 작업에서 꼭 필요해요. 중간 오류에도 데이터 꼬임 없이 처리할 수 있어 반드시 익혀두세요!

다음 글에서는 PDO로 예외(Exception) 처리하는 법을 소개할 테니 구독해주시면 좋아요 👍