
SQLSRV_ROLLBACK 함수는 PHP의 sqlsrv 연동 모듈에서 제공하는 함수로, 트랜잭션을 롤백하는 데 사용됩니다.
트랜잭션을 롤백하는 목적은 다음과 같습니다.
- 데이터베이스의 일관성을 유지하기 위해, 일부 작업이 실패한 경우 이전 상태로 복원하는 것
- 데이터베이스의 데이터가 손상되지 않도록, 일부 작업이 실패한 경우 이전 상태로 복원하는 것
SQLSRV_ROLLBACK 함수를 사용하는 방법은 다음과 같습니다.
1. 트랜잭션을 시작하기 전에, sqlsrv_begin_transaction() 함수를 사용하여 트랜잭션을 시작합니다.
2. 트랜잭션 내에서 데이터베이스 작업을 수행합니다.
3. 트랜잭션을 롤백하기 위해, sqlsrv_rollback() 함수를 사용합니다.
예를 들어, 다음 코드는 SQLSRV_ROLLBACK 함수를 사용하여 트랜잭션을 롤백하는 방법을 보여줍니다.
#hostingforum.kr
php
<?php
$server = 'localhost';
$database = 'mydb';
$username = 'myuser';
$password = 'mypassword';
$connectionInfo = array('Database' => $database, 'UID' => $username, 'PWD' => $password);
$conn = sqlsrv_connect($server, $connectionInfo);
if (!$conn) {
echo "Connection could not be established.n";
die(print_r(sqlsrv_errors(), true));
}
sqlsrv_begin_transaction($conn);
$stmt = sqlsrv_query($conn, "INSERT INTO mytable (id, name) VALUES (1, 'John')");
if (!$stmt) {
sqlsrv_rollback($conn);
echo "Error inserting data.n";
die(print_r(sqlsrv_errors(), true));
}
$stmt = sqlsrv_query($conn, "INSERT INTO mytable (id, name) VALUES (2, 'Jane')");
if (!$stmt) {
sqlsrv_rollback($conn);
echo "Error inserting data.n";
die(print_r(sqlsrv_errors(), true));
}
sqlsrv_commit($conn);
sqlsrv_close($conn);
?>
SQLSRV_ROLLBACK 함수를 사용할 때 주의해야 하는 점은 다음과 같습니다.
- 트랜잭션을 롤백하기 전에, sqlsrv_rollback() 함수를 사용해야 합니다.
- 트랜잭션을 롤백한 후, sqlsrv_commit() 함수를 사용하여 트랜잭션을 커밋할 수 없습니다.
- 트랜잭션을 롤백한 후, sqlsrv_begin_transaction() 함수를 사용하여 새로운 트랜잭션을 시작할 수 없습니다.
2025-08-16 05:59