PHP에서 데이터베이스 작업 시, 여러 쿼리를 실행하다가 중간에 오류가 발생하면 데이터가 꼬일 수 있어요. 이럴 때 트랜잭션(Transaction)을 사용하면 데이터의 안정성을 지킬 수 있습니다.
📌 트랜잭션(Transaction)이란?
쉽게 말해 여러 작업을 하나의 묶음으로 처리하는 거예요. 모든 쿼리가 성공해야만 최종 반영하고, 하나라도 실패하면 모두 취소(Rollback)할 수 있어 데이터 일관성을 유지할 수 있습니다.
✅ PDO로 트랜잭션 사용하는 방법
- 트랜잭션 시작
$pdo->beginTransaction();
- 쿼리 실행
$pdo->exec("SQL문");
- 모두 성공하면 커밋
$pdo->commit();
- 실패하면 롤백
$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) 처리하는 법을 소개할 테니 구독해주시면 좋아요 👍