
mysqli::begin_transaction 함수를 호출하여 트랜잭션을 시작하면, 자동으로 commit이 발생하지 않습니다. 반드시 mysqli::commit 함수를 호출해야 트랜잭션의 변경 사항이 데이터베이스에 반영됩니다.
만약 에러나 롤백이 발생하는 경우, mysqli::rollBack 함수를 호출하여 트랜잭션의 변경 사항을 취소할 수 있습니다.
예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->begin_transaction()) {
// 트랜잭션 내의 쿼리 수행
$mysqli->query("INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2')");
// 트랜잭션의 변경 사항을 데이터베이스에 반영
$mysqli->commit();
} else {
// 트랜잭션의 변경 사항을 취소
$mysqli->rollBack();
}
mysqli::begin_transaction 함수를 호출할 때, 옵션을 지정할 수 있습니다. 예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$mysqli->begin_transaction(MYSQLI_TRANS_START_READ_ONLY);
이 옵션은 트랜잭션 내에서 읽기 전용으로 데이터를 조회할 수 있도록 합니다.
2025-07-03 12:54