트랜잭션의 명령은 DB 시스템의 커밋 상태를 임시로 변경하게 됩니다. 기본적으로 커밋 상태는 자동 모드입니다.

트랜잭션 시작 명령 이외에도 기본적으로 동작하는 모드를 변경할 수도 있습니다.

24.4.1 자동 커밋

설정 명령을 통하여 자동 커밋 상태를 활성화합니다.

| 자동 커밋 OFF |

SET AUTOCOMMIT=0; 

콘솔에서 명령을 입력하여 커밋 모드를 변경해 보도록 합니다. 0의 값은 자동 커밋 모드 상태를 의미합니다.

| 콘솔 실습 화면 |

mysql> SET AUTOCOMMIT=0;
Query OK, 0 rows affected (0.01 sec)

24.4.2 수동 커밋

설정 명령을 통하여 수동 커밋 상태로 활성화합니다.

| 자동 커밋 OFF |

SET AUTOCOMMIT=1; 

콘솔에서 명령을 입력하여 커밋 모드를 변경해 보도록 합니다. 1의 값은 수동 커밋 모드 상태를 의미합니다.

| 콘솔 실습 화면 |

mysql> SET AUTOCOMMIT=1;
Query OK, 0 rows affected (0.00 sec)

24.4.3 PHP 실습

PHP 코드를 통하여 커밋 모드 상태를 변경하는 메서드를 만들어 봅니다.

| PHP 예제 | mysql.class.php 파일에 메서드 예제를 추가합니다.

public function autoCommit($mode)
{
            if ($mode == true) {
                $queryString = "SET AUTOCOMMIT=1;";
            } else {
                $queryString = "SET AUTOCOMMIT=0;";
            }

            // 쿼리를 전송합니다.
            if (mysqli_query($this->dbcon, $queryString)=== TRUE) {
                $this->msgEcho("쿼리성공] ".$queryString);
                if ($mode == true) {
                    $this->msgEcho(" 자동커밋 상태전환!");
                } else {
                    $this->msgEcho(" 자동커밋 OFF!");
                }
                
                return true;
            } else {
                $this->msgEcho("Error] ".$queryString);
                return false;
            }

}