updated_at: 2024-12-15 06:42

트랜잭션(Transaction) 사용법

여러 db에 입력할 경우 결과 값이 문제없이 처리되었으면 입력을 하는 방식이다.
Engine Type이 InnoDB에서만 작동합니다.

방법 1

BEGIN 을 시작으로 에러가 없으면 COMMIT를, 에러가 발행하면 ROLLBACK 시키는 방식

mysql_query("BEGIN");
명령실행줄
mysql_query("COMMIT");
mysql_query("ROLLBACK");

방법 2

autocommit을 비활성화 시킨 후 에러가 없으면 commit을 시키는 방식 mysql_query("set autocommit=0"); //자동 commit 기능 방지 명령실행줄 mysql_query("commit"); //위에서 실행한 명령을 commit 하여 디비에 반영

예제

mysql_query("set autocommit=0");    //자동 commit 기능 방지
$result[] = mysql_query("insert...");
$result[] = update("insert...");
$result[] = update("insert...");

foreach($result as $val){
	if(!$val){
		$rollback = 0;
		break;
	}
}
if ($rollback) mysql_query("commit");  
else mysql_query("rollback"); 

mysql_query("set autocommit=1");
평점을 남겨주세요
평점 : 2.5
총 투표수 : 1

질문 및 답글