
sqlsrv_rollback 함수를 사용할 때 주의해야 할 점은 다음과 같습니다.
1. 트랜잭션을 시작하기 전에 연결을 확인하세요. sqlsrv_begin_transaction 함수를 사용하기 전에 sqlsrv_connect 함수를 사용하여 연결을 확인하세요. 연결이 실패한 경우 sqlsrv_errors 함수를 사용하여 에러 메시지를 확인하세요.
2. 트랜잭션을 시작한 후에만 rollback 함수를 사용하세요. sqlsrv_begin_transaction 함수를 사용하여 트랜잭션을 시작한 후에만 sqlsrv_rollback 함수를 사용하세요. 트랜잭션을 시작하지 않은 경우 rollback 함수를 사용하면 에러가 발생합니다.
3. 트랜잭션을 시작한 후에만 close 함수를 사용하세요. sqlsrv_begin_transaction 함수를 사용하여 트랜잭션을 시작한 후에만 sqlsrv_close 함수를 사용하세요. 트랜잭션을 시작하지 않은 경우 close 함수를 사용하면 에러가 발생합니다.
4. 트랜잭션을 시작한 후에만 rollback 함수를 사용하세요. sqlsrv_begin_transaction 함수를 사용하여 트랜잭션을 시작한 후에만 sqlsrv_rollback 함수를 사용하세요. 트랜잭션을 시작하지 않은 경우 rollback 함수를 사용하면 에러가 발생합니다.
5. 에러 메시지를 확인하세요. sqlsrv_rollback 함수를 사용할 때 에러가 발생한 경우 sqlsrv_errors 함수를 사용하여 에러 메시지를 확인하세요.
예제 코드를 다음과 같이 수정하여 에러를 해결할 수 있습니다.
#hostingforum.kr
php
$conn = sqlsrv_connect('localhost', array('Database' => 'mydb'));
if (!$conn) {
die(print_r(sqlsrv_errors(), true));
}
sqlsrv_begin_transaction($conn);
$sql = "INSERT INTO mytable (id, name) VALUES (1, 'John')";
$stmt = sqlsrv_query($conn, $sql);
if (!$stmt) {
die(print_r(sqlsrv_errors(), true));
}
$sql = "INSERT INTO mytable (id, name) VALUES (2, 'Jane')";
$stmt = sqlsrv_query($conn, $sql);
if (!$stmt) {
die(print_r(sqlsrv_errors(), true));
}
sqlsrv_rollback($conn);
sqlsrv_close($conn);
이 예제 코드에서는 sqlsrv_begin_transaction 함수를 사용하여 트랜잭션을 시작한 후에만 sqlsrv_rollback 함수를 사용하여 트랜잭션을 rollback합니다. 또한 sqlsrv_errors 함수를 사용하여 에러 메시지를 확인합니다.
2025-07-26 07:00