(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::commit — Commits a transaction
Commits a transaction, returning the database connection to autocommit mode until the next call to PDO::beginTransaction() starts a new transaction.
This function has no parameters.
Returns true
on success or false
on failure.
Throws a PDOException if there is no active transaction.
Note: An exception is raised even when the
PDO::ATTR_ERRMODE
attribute is notPDO::ERRMODE_EXCEPTION
.
Example #1 Committing a basic transaction
<?php/* Begin a transaction, turning off autocommit */$dbh->beginTransaction();/* Insert multiple records on an all-or-nothing basis */$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, ));}/* Commit the changes */$dbh->commit();/* Database connection is now back in autocommit mode */?>
Example #2 Committing a DDL transaction
<?php/* Begin a transaction, turning off autocommit */$dbh->beginTransaction();/* Change the database schema */$sth = $dbh->exec("DROP TABLE fruit");/* Commit the changes */$dbh->commit();/* Database connection is now back in autocommit mode */?>
Note: Not all databases will allow transactions to operate on DDL statements: some will generate errors, whereas others (including MySQL) will automatically commit the transaction after the first DDL statement has been encountered.