본문 바로가기
Programming/PHP

[코드이그나이터] 3. CI에서의 트랜잭션 사용

by Berasix 2022. 11. 8.
반응형

코드이그나이터(CI) 에서의 트랜잭션 사용

 

1. mysql에서 InnoDB 또는 BDB 테이블 유형을 사용한다.

2. 트랜잭션을 사용한 쿼리 실행하려면 아래 함수를 사용한다.

$this->db->transStart()

$this->db->transComplete() 

<?php

$this->db->transStart();
// $this->db->transStart(true); 테스트 모드. 유효한 결과라도 쿼리가 록백된다.
$this->db->query('쿼리1');
$this->db->query('쿼리2');
$this->db->query('쿼리3');
$this->db->transComplete();

if ($this->db->transStatus() === false) {
    // 에러 발생 혹은 로그 남기기
}

3. 수동 트랜잭션

<?php

$this->db->transBegin();

$this->db->query('쿼리1');
$this->db->query('쿼리2');
$this->db->query('쿼리3');

if ($this->db->transStatus() === false) {
    $this->db->transRollback();
} else {
    $this->db->transCommit();
}
728x90

댓글