PDO::commit

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

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

説明

publicPDO::commit(): bool

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

パラメータ

この関数にはパラメータはありません。

戻り値

成功した場合に true を、失敗した場合に false を返します。

エラー / 例外

有効なトランザクションがない場合に PDOException をスローします。

注意: 例外は、PDO::ATTR_ERRMODE 属性が PDO::ERRMODE_EXCEPTION ではない場合でも発生します。

例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 文が実行された時点で自動的にトランザクションをコミットしてしまうものもあります。

参考

To Top