PDO::beginTransaction
PDO::__construct
PDO
PHP Manual

# PDO::commit

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::commit — トランザクションをコミットする

### 説明

public bool PDO::commit ( void )

トランザクションをコミットし、 次に PDO::beginTransaction() で新たなトランザクションが開始されるまで、 データベース接続をオートコミットモードに戻します。

### 返り値

成功した場合に `TRUE` を、失敗した場合に `FALSE` を返します。

### 例

例1 基本的なトランザクションをコミットする

`<?php
/* トランザクションを開始する。オートコミットがオフになる */
$dbh->beginTransaction();
/* 複数レコードを追加する。全部成功か全部失敗のどちらかになる */
$sql = 'INSERT INTO fruit
(name, colour, calories)
VALUES (?, ?, ?)';
$sth = $dbh->prepare($sql);
foreach ($fruits as $fruit) {
$sth->execute(array(
$fruit->name,
$fruit->colour,
$fruit->calories,
));
}
/* 変更をコミットする */
$dbh->commit();
/* データベース接続はオートコミットモードに戻る */
?>`

例2 DDL トランザクションをコミットする

`<?php
/* トランザクションを開始する。オートコミットがオフになる */
$dbh->beginTransaction();
/* データベーススキーマを変更する */
$sth = $dbh->exec("DROP TABLE fruit");
/* 変更をコミットする */
$dbh->commit();
/* データベース接続はオートコミットモードに戻る */
?>`

> 注意: DDL 文の操作にトランザクションが使えないデータベースもあります。 単にエラーになるだけのものもあれば、(MySQL などのように) DDL 文が実行された時点で自動的にトランザクションをコミットしてしまうものもあります。

### 参考

- PDO::beginTransaction() - トランザクションを開始する
- PDO::rollBack() - トランザクションをロールバックする
- トランザクションおよび自動コミット

PDO::beginTransaction
PDO::__construct
PDO
PHP Manual