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() - 트랜잭션을 커밋합니다.