
sqlsrv_commit 함수를 사용하여 트랜잭션을 커밋하는 부분에서 오류가 발생하는 이유는 다음과 같습니다.
- sqlsrv_commit 함수를 호출하기 전에 sqlsrv_query 함수를 사용하여 쿼리를 실행한 경우, 쿼리 실행 결과가 FALSE 인 경우 오류가 발생합니다.
- sqlsrv_commit 함수를 호출하기 전에 sqlsrv_query 함수를 사용하여 쿼리를 실행한 경우, 쿼리 실행 결과가 TRUE 인 경우 오류가 발생하지 않습니다.
오류를 해결하기 위한 방법은 다음과 같습니다.
1. sqlsrv_query 함수를 사용하여 쿼리를 실행한 후, 쿼리 실행 결과를 확인합니다. 쿼리 실행 결과가 FALSE 인 경우, 오류 메시지를 출력하고, 쿼리 실행 결과가 TRUE 인 경우, sqlsrv_commit 함수를 호출합니다.
2. sqlsrv_query 함수를 사용하여 쿼리를 실행한 후, 쿼리 실행 결과를 확인하고, 오류 메시지를 출력하는 대신, 에러를 캐치하여 처리합니다.
예를 들어, 다음과 같이 코드를 수정할 수 있습니다.
#hostingforum.kr
php
// 트랜잭션을 시작합니다.
sqlsrv_begin_transaction($conn);
// 쿼리를 실행합니다.
$stmt = sqlsrv_query($conn, "INSERT INTO 테이블명 VALUES ('값1', '값2')");
// 쿼리 실행 결과를 확인합니다.
if (!$stmt) {
// 오류 메시지를 출력합니다.
echo sqlsrv_get_last_message();
} else {
// sqlsrv_commit 함수를 호출합니다.
sqlsrv_commit($conn);
}
또는 다음과 같이 코드를 수정할 수 있습니다.
#hostingforum.kr
php
// 트랜잭션을 시작합니다.
sqlsrv_begin_transaction($conn);
// 쿼리를 실행합니다.
$stmt = sqlsrv_query($conn, "INSERT INTO 테이블명 VALUES ('값1', '값2')");
// 쿼리 실행 결과를 확인합니다.
if (!$stmt) {
// 에러를 캐치하여 처리합니다.
$error = sqlsrv_errors();
echo "오류 메시지: " . $error[0]['message'];
} else {
// sqlsrv_commit 함수를 호출합니다.
sqlsrv_commit($conn);
}
2025-03-05 00:55