db2_rollback

(PECL ibm_db2 >= 1.0.0)

db2_rollback — 트랜잭션 롤백


설명

db2_rollback(resource $connection): bool

지정된 연결 리소스에서 진행 중인 트랜잭션을 롤백하고 새 트랜잭션을 시작합니다. PHP 애플리케이션은 일반적으로 AUTOCOMMIT 모드로 기본 설정되므로 db2_rollback()은 일반적으로 연결 자원에 대해 AUTOCOMMIT가 해제되지 않는 한 효과가 없습니다.


매개변수

connection
db2_connect() 또는 db2_pconnect()에서 리턴된 유효한 데이터베이스 연결 자원 변수.

반환 값

성공하면 true를, 실패하면 false를 반환합니다.


Examples

예제 #1 DELETE 문 롤백

다음 예에서는 테이블의 행 수를 계산하고, 데이터베이스 연결에서 AUTOCOMMIT 모드를 끄고, 테이블의 모든 행을 삭제하고, 행이 제거되었음을 증명하기 위해 0을 반환합니다. 그런 다음 db2_rollback()을 실행하고 테이블의 업데이트된 행 수를 반환하여 숫자가 DELETE 문을 실행하기 전과 동일함을 보여줍니다. 테이블의 원래 상태로 돌아가는 것은 트랜잭션의 롤백이 성공했음을 보여줍니다.

                  
<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
    $stmt = db2_exec($conn, "SELECT count(*) FROM animals");
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";

    // Turn AUTOCOMMIT off
    db2_autocommit($conn, DB2_AUTOCOMMIT_OFF);

    // Delete all rows from ANIMALS
    db2_exec($conn, "DELETE FROM animals");

    $stmt = db2_exec($conn, "SELECT count(*) FROM animals");
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";

    // Roll back the DELETE statement
    db2_rollback( $conn );

    $stmt = db2_exec( $conn, "SELECT count(*) FROM animals" );
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";
    db2_close($conn);
}
?>
                  
                

위의 예는 다음을 출력합니다.

7
0
7
                

기타

  • db2_autocommit() - 데이터베이스 연결에 대한 AUTOCOMMIT 상태를 반환하거나 설정합니다.
  • db2_commit() - 트랜잭션을 커밋합니다.