트랜잭션에는 커밋이라는 명령을 함께 사용합니다. 커밋은 임시로 실행 처리한 쿼리 명령 을 실제적인 데이터베이스에 반영을 처리하는 명령입니다.
기본적으로 데이터베이스는 커밋 동작에 대하여 자동 처리되어 있습니다. 자동 처리한 현 재와 같이 SQL 쿼리를 입력하고 실행하게 되면 바로 실시간으로 데이터를 반영하여 처리 하는 것입니다.
트랜잭션으로 작업하기 위해서는 자동 처리되는 커밋을 수동으로 변경해야 합니다. 수동 커밋 모드 상태에서 실제적인 데이터 쿼리 작업을 실행합니다. 쿼리의 실행이 정상적이라 고 판단되었을 때 COMMIT 명령을 통하여 작업을 실제 데이터베이스에 반영합니다.
| 쿼리 문법 |
START TRANSACTION;
START TRANSACTION;
은 현재 자동 커밋 모드 상태에서 트랜잭션을 시작하겠다는 명 령입니다. 트랜잭션 시작을 하게 되면 자동 커밋 상태에서 수동 커밋 상태로 전환됩니다.
24.1.1 쿼리 실습
트랜잭션 시작을 통하여 수동 커밋 모드 상태로 전환합니다.
| 콘솔 실습 화면 |
mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)
24.1.2 PHP 실습
PHP 코드를 통하여 트랜잭션 모든 전환 메서드를 생성해 봅니다.
| PHP 예제 | mysql.class.php 파일에 메서드 예제를 추가합니다.
public function transaction()
{
$queryString = "START TRANSACTION";
// 쿼리를 전송합니다.
if (mysqli_query($this->dbcon, $queryString)=== TRUE){
$this->msgEcho("쿼리성공] ".$queryString);
$this->msgEcho(" 트렌젝션 시작!");
return true;
} else {
$this->msgEcho("Error] ".$queryString);
return false;
}
}