ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ci 트랜잭션
    CI4 2022. 7. 21. 07:50
    728x90
    반응형

    ci4 트랜잭션 처리 (transaction)

     

    # 트랜잭션 시작

    $this->db->transStart();

     

    # 트랜잭션 완료

    $this->db->transComplete();

     

    트랜잭션 시작과 완료 함수 사이에 원라는 쿼리를 실행 할 수 있으며 

    주어진 쿼리의 성공 또는 실패에 따라 모두 커밋되거나 롤백됩니다.

     

    #트랜잭션 엄격모드 비활성화

    기본적으로 엄격모드가 실행되며, 비활성화는 다음과 같다. 

    ( 각 그룹이 독립적으로 처리되므로 한 그룹의 장애가 다른 그룹에 영향을 미치지 않는다.) 

    $this->db->transStrict(false); 

     

    #트랜잭션 오류 처리

    Config/Database.php 파일에서 오류보고를 활성화 한 경우 커밋이 실패하면 표준 오류 메시지가 표시된다.

    오류보고가 꺼져 있으면 다음과 같이 자신의 오류를 관리 할 수 있다.

    $this->db->transStatus();

    1)

    if ($this->db->transStatus() === false) {
        //log_message(); 오류발생되어 로그 메세지 남김
    }

    2) 수동 커밋/롤백

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

     

    #트랜잭션 비활성화

    $this->db->transOff();

     

    <?
    
    namespace App\Models;
    
    use CodeIgniter\Model;
    
    class testModel extends Model {
    
    	function test()
        {
        	$this->db->transStart();
            $this->db->query("");
    		$this->db->transComplete();
        }
        function test2()
        {
        	$this->db->transStart();
            $this->db->query("");
    	if ($this->db->transStatus() === false) {
                $this->db->transRollback();
            } else {
                $this->db->transCommit();
            }
        }
    }
    728x90
    반응형

    'CI4' 카테고리의 다른 글

    ci 페이지 이동 (리디렉션)  (0) 2022.08.05
    ci4 윈도우 테스트 환경 페이지 느려짐  (0) 2022.08.02
    ci paginate 페이징처리  (0) 2022.07.15
    ci 세션  (0) 2022.07.08
    ci 사용자 라이브러리  (0) 2022.07.07

    댓글

Designed by Tistory.