
SQLSRV_BEGIN_TRANSACTION 함수를 사용하여 트랜잭션을 시작하기 전에 발생하는 SQLSRV_ERR_NO_TRANSACTION 오류는, 트랜잭션을 시작하기 전에 커밋 또는 롤백이 이미 수행된 경우에 발생합니다.
이러한 오류를 해결하기 위해서는, 트랜잭션을 시작하기 전에 커밋 또는 롤백을 수행하지 않은 상태에서 SQLSRV_BEGIN_TRANSACTION 함수를 호출해야 합니다.
트랜잭션을 시작하기 전에 커밋 또는 롤백을 수행하지 않은 상태를 확인하기 위해, SQLSRV_ERR_NO_TRANSACTION 오류가 발생하기 전에 SQLSRV_ERR_NO_TRANSACTION 오류를 확인하는 코드를 추가할 수 있습니다.
예를 들어, 다음 코드를 사용할 수 있습니다.
#hostingforum.kr
php
$connection = sqlsrv_connect('서버 이름', '사용자 이름', '비밀번호');
if ($connection === false) {
die('연결 실패');
}
// 트랜잭션을 시작하기 전에 커밋 또는 롤백이 이미 수행되지 않은지 확인합니다.
if (sqlsrv_errcode($connection) == SQLSRV_ERR_NO_TRANSACTION) {
// 트랜잭션을 시작할 수 있습니다.
sqlsrv_begin_transaction($connection);
} else {
// 트랜잭션을 시작할 수 없습니다.
die('트랜잭션을 시작할 수 없습니다.');
}
// 트랜잭션을 수행합니다.
// ...
// 트랜잭션을 커밋합니다.
sqlsrv_commit($connection);
이러한 코드를 사용하면, 트랜잭션을 시작하기 전에 커밋 또는 롤백이 이미 수행되지 않은 상태에서 트랜잭션을 시작할 수 있습니다.
2025-04-19 22:09