
Schema::getSession() 함수는 데이터베이스 세션 객체를 반환합니다. 이 데이터베이스 세션 객체는 다음과 같은 속성을 가집니다.
- connection: 데이터베이스 연결 객체
- transaction: 데이터베이스 트랜잭션 객체
- query: 데이터베이스 쿼리 객체
- queryBuilder: 데이터베이스 쿼리 빌더 객체
이 데이터베이스 세션 객체의 transaction() 메서드는 데이터베이스 트랜잭션을 시작합니다. 이 메서드는 다음과 같은 방법으로 사용할 수 있습니다.
#hostingforum.kr
php
$session = Schema::getSession();
$session->transaction(function ($transaction) {
// 데이터베이스 트랜잭션을 시작합니다.
$transaction->insert('테이블명', ['컬럼명' => '값']);
// 데이터베이스 트랜잭션을 종료합니다.
});
이 예제에서 transaction() 메서드는 데이터베이스 트랜잭션을 시작하고 종료합니다. 트랜잭션 내에서 데이터베이스 쿼리를 수행할 수 있습니다. 트랜잭션을 종료되면 데이터베이스에 반영됩니다.
또한, transaction() 메서드는 다음과 같은 옵션을 가집니다.
- isolationLevel: 트랜잭션의 격리 수준을 설정합니다. 기본값은 READ_COMMITTED입니다.
- timeout: 트랜잭션의 타임아웃 시간을 설정합니다. 기본값은 30초입니다.
이 옵션을 사용하여 트랜잭션의 격리 수준과 타임아웃 시간을 설정할 수 있습니다.
#hostingforum.kr
php
$session = Schema::getSession();
$session->transaction(function ($transaction) {
// 데이터베이스 트랜잭션을 시작합니다.
$transaction->insert('테이블명', ['컬럼명' => '값']);
// 데이터베이스 트랜잭션을 종료합니다.
}, 'READ_UNCOMMITTED', 60);
이 예제에서 transaction() 메서드는 트랜잭션의 격리 수준을 READ_UNCOMMITTED로 설정하고 타임아웃 시간을 60초로 설정합니다.
2025-04-12 04:27