라이브러리
[PHP] sqlsrv_rollback - sqlsrv_begin_transaction으로 시작된 트랜잭션을 롤백합니다.
SQLSRV_ROLLBACK
SQLSRV_ROLLBACK 함수는 PHP의 sqlsrv 확장 함수 중 하나입니다. 이 함수는 현재 트랜잭션을 롤백(취소)하는 데 사용됩니다. 트랜잭션은 데이터베이스에서 여러 쿼리를 하나의 단위로 처리하는 방법입니다. 트랜잭션은 다음과 같은 특징을 가지고 있습니다.
- 원자성(Atomicity): 트랜잭션은 모두 성공하거나 모두 실패합니다.
- 일관성(Consistency): 트랜잭션은 데이터베이스의 일관성을 유지해야 합니다.
- 독립성(Isolation): 트랜잭션은 다른 트랜잭션에 영향을 받지 않습니다.
- 지속성(Durability): 트랜잭션의 결과는 영구적으로 저장됩니다.
SQLSRV_ROLLBACK 함수 사용 방법
SQLSRV_ROLLBACK 함수를 사용하려면 먼저 sqlsrv_begin_transaction 함수를 사용하여 트랜잭션을 시작해야 합니다. 트랜잭션을 시작한 후, SQLSRV_ROLLBACK 함수를 사용하여 트랜잭션을 롤백할 수 있습니다.
# 예제 1: SQLSRV_ROLLBACK 함수 사용
#hostingforum.kr
php
<?php
// 데이터베이스 연결 설정
$serverName = "localhost";
$connectionInfo = array("Database"=>"mydb", "UID"=>"myuser", "PWD"=>"mypassword");
$conn = sqlsrv_connect($serverName, $connectionInfo);
if (!$conn) {
echo "Connection could not be established.
";
die(print_r(sqlsrv_errors(), true));
}
// 트랜잭션 시작
sqlsrv_begin_transaction($conn);
try {
// 쿼리 실행
$sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')";
$result = sqlsrv_query($conn, $sql);
if (!$result) {
throw new Exception(sqlsrv_errors()[2][1]);
}
// 롤백 시도
sqlsrv_rollback($conn);
echo "트랜잭션 롤백 성공
";
} catch (Exception $e) {
// 롤백 시도
sqlsrv_rollback($conn);
echo "트랜잭션 롤백 성공
";
echo "에러 메시지: " . $e->getMessage() . "
";
} finally {
// 데이터베이스 연결 종료
sqlsrv_close($conn);
}
# 예제 2: SQLSRV_ROLLBACK 함수 사용 (트랜잭션 중복 사용)
#hostingforum.kr
php
<?php
// 데이터베이스 연결 설정
$serverName = "localhost";
$connectionInfo = array("Database"=>"mydb", "UID"=>"myuser", "PWD"=>"mypassword");
$conn = sqlsrv_connect($serverName, $connectionInfo);
if (!$conn) {
echo "Connection could not be established.
";
die(print_r(sqlsrv_errors(), true));
}
// 트랜잭션 시작
sqlsrv_begin_transaction($conn);
try {
// 쿼리 실행
$sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')";
$result = sqlsrv_query($conn, $sql);
if (!$result) {
throw new Exception(sqlsrv_errors()[2][1]);
}
// 트랜잭션 중복 사용
sqlsrv_begin_transaction($conn);
// 쿼리 실행
$sql = "INSERT INTO users (name, email) VALUES ('Jane Doe', 'jane@example.com')";
$result = sqlsrv_query($conn, $sql);
if (!$result) {
throw new Exception(sqlsrv_errors()[2][1]);
}
// 롤백 시도
sqlsrv_rollback($conn);
echo "트랜잭션 롤백 성공
";
} catch (Exception $e) {
// 롤백 시도
sqlsrv_rollback($conn);
echo "트랜잭션 롤백 성공
";
echo "에러 메시지: " . $e->getMessage() . "
";
} finally {
// 데이터베이스 연결 종료
sqlsrv_close($conn);
}
이 예제는 SQLSRV_ROLLBACK 함수를 사용하여 트랜잭션을 롤백하는 방법을 보여줍니다. 첫 번째 예제는 단순한 트랜잭션 롤백을 보여주고, 두 번째 예제는 트랜잭션 중복 사용을 보여줍니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.