트랜잭션(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");