라이브러리

[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 함수를 사용하여 트랜잭션을 롤백하는 방법을 보여줍니다. 첫 번째 예제는 단순한 트랜잭션 롤백을 보여주고, 두 번째 예제는 트랜잭션 중복 사용을 보여줍니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 131 페이지

검색

게시물 검색