PDO 트랜잭션
beginTransaction과 commit으로 여러 쿼리를 원자적 트랜잭션으로 묶습니다.
PDO 트랜잭션은(는) CoddyKit의 무료 PHP Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 PHP Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. PHP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
트랜잭션이란 무엇입니까?
트랜잭션은 여러 SQL 문을 하나의 원자적 단위로 묶습니다. 모두 성공하여 커밋되거나 모두 롤백됩니다.
ACID 속성
트랜잭션은 ACID를 보장합니다: 원자성, 일관성, 격리성, 지속성.
beginTransaction()
$pdo->beginTransaction()으로 트랜잭션을 시작합니다. commit() 또는 rollBack()을 호출할 때까지 자동 커밋이 비활성화됩니다.
commit()
beginTransaction() 이후에 이루어진 모든 변경 사항을 영구적으로 저장합니다.
rollBack()
beginTransaction() 이후에 이루어진 모든 변경 사항을 버리고 데이터베이스를 트랜잭션 이전 상태로 되돌립니다.
트랜잭션 패턴
트랜잭션은 항상 try/catch로 감싸십시오:
<?php
try {
$pdo->beginTransaction();
$pdo->prepare("UPDATE accounts SET balance = balance - ? WHERE id = ?")
->execute([100, $senderId]);
$pdo->prepare("UPDATE accounts SET balance = balance + ? WHERE id = ?")
->execute([100, $receiverId]);
$pdo->commit();
} catch (PDOException $e) {
$pdo->rollBack();
throw $e;
}저장점
PDO는 중첩 트랜잭션을 기본적으로 지원하지 않습니다. 트랜잭션 안에서 부분적으로 롤백하려면 SQL SAVEPOINT 명령을 사용하십시오.
inTransaction()
$pdo->inTransaction()으로 트랜잭션이 활성 상태인지 확인합니다. true 또는 false를 반환합니다.
자동 커밋 모드
기본적으로 PDO는 자동 커밋 모드입니다. 모든 문이 즉시 커밋됩니다. beginTransaction()은 자동 커밋을 비활성화합니다.
격리 수준
MySQL은 READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ(기본값), SERIALIZABLE을 지원합니다. $pdo->exec("SET TRANSACTION ISOLATION LEVEL READ COMMITTED")로 설정합니다.
트랜잭션을 사용하는 경우
은행 송금, 재고 차감이 포함된 주문 생성, 부분 완료를 허용할 수 없는 여러 테이블 쓰기 작업에 사용하십시오.
DDL과 트랜잭션
MySQL에서 DDL 문(CREATE TABLE, ALTER TABLE)은 암시적 커밋을 발생시킵니다. 트랜잭션 안에서는 DDL을 롤백할 수 없습니다.
빠른 확인
rollBack()은 무엇을 수행합니까?
자주 묻는 질문
“PDO 트랜잭션” 강의는 무료인가요?
네 — “PDO 트랜잭션” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 PHP Academy 강의 전체를 잠금 해제할 수 있습니다. PHP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“PDO 트랜잭션”에서 뭘 배우나요?
beginTransaction과 commit으로 여러 쿼리를 원자적 트랜잭션으로 묶습니다. 브라우저에서 직접 실행하는 실습 코드로 PHP Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
PHP Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 PHP Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“PDO 트랜잭션” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 PHP Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 PHP Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.