PDO :: 들어 BeginTransaction
PDO :: 트랜잭션을 시작 들어 BeginTransaction (PHP 5> = 5.1.0, PECL의 PDO> = 0.1.0)
설명
문법
bool PDO::beginTransaction ( void )
자동 커밋 모드를 해제합니다. 자동 커밋 모드는 당신이 PDO는 ::에만 제출 된 트랜잭션을 종료 () 커밋 호출 할 때까지 데이터베이스에 대한 인스턴스 객체를 변경할 PDO에 의해 동시에 해제됩니다.
데이터베이스에 대한 변경 및 데이터베이스 연결을 롤백합니다 PDO :: 롤백 ()를 호출하면 자동 커밋 모드로 돌아갑니다.
MySQL을 포함한 일부 데이터베이스 때 유사한 문제에 몸값 TABLE 또는 CREATE TABLE DDL 문 등, 자동으로 암시 적 트랜잭션이 커밋 될 것이다.
암시 적 또는 명시 적으로이 거래의 범위 내에서 다른 변경을 롤백 방지 할 수 최선을 다하고 있습니다.
반환 값
성공적인 TRUE 반환 또는 실패는 FALSE를 반환합니다.예
트랜잭션을 롤백
롤백하기 전에이 변화의 다음 예는 트랜잭션을 시작하고 데이터베이스를 수정이 문을 발행합니다.
이 거래의 변경이 롤백되지 않도록하지만, MySQL의에서 DROP TABLE 문이 자동으로 트랜잭션을 범했습니다.
<?php /* 开始一个事务,关闭自动提交 */ $dbh->beginTransaction(); /* 更改数据库架构及数据 */ $sth = $dbh->exec("DROP TABLE fruit"); $sth = $dbh->exec("UPDATE dessert SET name = 'hamburger'"); /* 识别出错误并回滚更改 */ $dbh->rollBack(); /* 数据库连接现在返回到自动提交模式 */ ?>