PDO::beginTransaction
자동 커밋 모드를 끄고 트랜잭션을 시작합니다.
구문
bool PDO::beginTransaction();
Return Value
메서드 호출에 성공하면 true이고, 그렇지 않으면 false입니다.
설명
PDO::beginTransaction으로 시작한 트랜잭션은 PDO::commit 또는 PDO::rollback 이 호출될 때 종료됩니다.
PDO::beginTransaction은 PDO::ATTR_AUTOCOMMIT 값에 의해 영향을 받지도 않고 영향을 주지도 않습니다.
이전 PDO::beginTransaction이 PDO::rollback 또는 PDO::commit으로 종료되기 전에는 PDO::beginTransaction을 호출할 수 없습니다.
이 메서드가 실패하면 연결이 자동 커밋 모드로 돌아갑니다.
PDO 지원이 Microsoft Drivers for PHP for SQL Server의 버전 2.0에 추가되었습니다.
예제
다음 예제는 Test라는 데이터베이스와 Table1이라는 테이블을 사용합니다. 트랜잭션을 시작하고 두 행을 추가한 다음 한 행을 삭제하는 명령을 실행합니다. 명령이 데이터베이스에 전송되고 트랜잭션이 PDO::commit
으로 명시적으로 종료됩니다.
<?php
$conn = new PDO( "sqlsrv:server=(local); Database = Test", "", "");
$conn->beginTransaction();
$ret = $conn->exec("insert into Table1(col1, col2) values('a', 'b') ");
$ret = $conn->exec("insert into Table1(col1, col2) values('a', 'c') ");
$ret = $conn->exec("delete from Table1 where col1 = 'a' and col2 = 'b'");
$conn->commit();
// $conn->rollback();
echo $ret;
?>