PDO::commit はトランザクションをコミットします (PHP 5 >= 5.1.0、PECL pdo >= 0.1.0)
bool PDO::commit ( void )
トランザクションをコミットすると、次に PDO::beginTransaction() を呼び出して新しいトランザクションを開始するまで、データベース接続は自動コミット モードに戻ります。
<?php/* トランザクションを開始し、自動コミットをオフにします */$dbh->beginTransaction();/* オールオアナッシングベース (すべてまたはなし) で複数行のレコードを挿入します */$ sql = 'INSERT INTO フルーツ (名前、色、カロリー) VALUES (?, ?, ?)';$sth = $dbh->prepare($sql);foreach ($fruits as $fruit) { $sth->execute(array( $fruit->name, $fruit->colour, $fruit->カロリー, ));}/* 変更をコミット*/$dbh->commit();/* 次に接続しますデータベース 自動コミット モードに戻ります*/?>
<?php/* トランザクションを開始し、自動送信をオフにします */$dbh->beginTransaction();/* データベース スキーマを変更します */$sth = $dbh->exec("DROP TABLE Fruit");/* 変更しますデータベース スキーマ*/$dbh->commit();/* データベース接続は自動コミット モードに戻ります*/?>
注:すべてのデータベースで DDL ステートメントを使用したトランザクション操作が許可されているわけではありません。一部のデータベースではエラーが生成されますが、他のデータベース (MySQL を含む) では、最初の DDL ステートメントの検出後に自動的にトランザクションがコミットされます。