거래를 사용 중지하는 이유는 무엇입니까? http://ellislab.com/codeigniter/user-guide/database/transactions.htmlActiveRecord CodeIgniter에서 트랜잭션을 비활성화하는 것은 무엇입니까?
$this->db->trans_off()
내가 사용을 볼 수 없습니다. 테스트 용입니까?
"트랜잭션을 사용할 수없는 경우 쿼리는 트랜잭션없이 쿼리를 실행할 때와 마찬가지로 자동 커밋됩니다."
user
테이블에 nameOfUser
이라는 열이있는 테이블이 있습니다. nameOfUser2
- 열 않습니다 가 존재합니다.
TEST1 이 코드는 정상 거래와 2 개 삽입을 수행하려고 할 것입니다 :
$this->db->trans_start();
$this->db->insert('user', array('nameOfUser' => 'testCVVCOOL'));
$this->db->insert('user', array('nameOfUser2' => 'test2'));
$this->db->trans_complete();
하지만 열 nameOfUser2
A 행이 아닌 존재 때문에 그것은 (아무것도 삽입되지 않은) 롤백 두 번째 삽입물.
TEST2 이 코드는 두 번째에 오류가있는 경우에도 - 테이블 user
에 testCVVCOOL 문자열을 삽입합니다
$this->db->trans_off();
$this->db->trans_start();
$this->db->insert('user', array('nameOfUser' => 'testCVVCOOL'));
$this->db->insert('user', array('nameOfUser2' => 'test2'));
$this->db->trans_complete();
위를 비활성화 트랜잭션이 개 삽입을 수행하려고 할 것 삽입 ($this->db->insert('user', array('nameOfUser2' => 'test2'));
)
이런 식으로 트랜잭션을 비활성화해야하는시기는 언제입니까?
나는 잘 모르겠다.하지만 트랜잭션 상태가 다시 실행되도록 남겨 두었다면 trans_start()를 수행 한 후에 트랜잭션 모드를 off로 재설정해야 할 수도 있으므로 트랜잭션 상태에 대해 좀더 쉬워야한다고 생각한다. 끝났다. –