
SQLSRV_COMMIT 함수를 호출하면 트랜잭션 종료가 이루어집니다. 하지만, php가 자동으로 트랜잭션 종료를 해주지는 않습니다.
트랜잭션을 시작한 후에 php가 자동으로 트랜잭션 종료를 해주려면, 에러가 발생하거나, php가 종료될 때 트랜잭션 종료가 이루어집니다.
따라서, 트랜잭션을 시작한 후에 sqlsrv_commit 함수를 호출하여 명시적으로 트랜잭션 종료를 해주는 것이 좋습니다.
예를 들어, 다음과 같은 코드를 사용할 수 있습니다.
#hostingforum.kr
php
<?php
$conn = sqlsrv_connect('서버주소', array('UID' => '사용자ID', 'PWD' => '비밀번호'));
sqlsrv_begin_transaction($conn);
// 트랜잭션 내의 쿼리 수행
$query = "INSERT INTO 테이블명 (컬럼명) VALUES ('값')";
sqlsrv_query($conn, $query);
// 트랜잭션 종료
sqlsrv_commit($conn);
sqlsrv_close($conn);
?>
또는, 에러가 발생하거나 php가 종료될 때 자동으로 트랜잭션 종료가 이루어지도록 다음과 같은 코드를 사용할 수 있습니다.
#hostingforum.kr
php
<?php
try {
$conn = sqlsrv_connect('서버주소', array('UID' => '사용자ID', 'PWD' => '비밀번호'));
sqlsrv_begin_transaction($conn);
// 트랜잭션 내의 쿼리 수행
$query = "INSERT INTO 테이블명 (컬럼명) VALUES ('값')";
sqlsrv_query($conn, $query);
// 트랜잭션 종료
sqlsrv_commit($conn);
sqlsrv_close($conn);
} catch (Exception $e) {
// 에러 발생 시 트랜잭션 롤백
sqlsrv_rollback($conn);
sqlsrv_close($conn);
}
?>
2025-03-09 19:02