Valide une transaction

# PDO::commit

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

PDO::commit — Valide une transaction

### Description

public function PDO::commit(): bool

PDO::commit() valide une transaction, remet la connexion en mode `autocommit` en attendant l'appel à la fonction PDO::beginTransaction() pour débuter une nouvelle transaction.

### Liste de paramètres

Cette fonction ne contient aucun paramètre.

### Valeurs de retour

Cette fonction retourne `true` en cas de succès ou `false` si une erreur survient.

### Erreurs / Exceptions

Une exception PDOException sera lancée si aucune transaction n'est active.

> Note: Une exception sera émise même si l'attribut `PDO::ATTR_ERRMODE` ne vaut pas `PDO::ERRMODE_EXCEPTION`.

### Exemples

Exemple #1 Valide une transaction basique

    <?php
    /* Commence une transaction, désactivation de l'auto-commit */
    $dbh->beginTransaction();

    /* Insérer plusieurs enregistrements sur une base tout-ou-rien */
    $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,
        ));
    }

    /* Valider les modifications */
    $dbh->commit();

    /* La connexion à la base de données est maintenant de retour en mode auto-commit */
    ?>

Exemple #2 Valide une transaction DDL

    <?php
    /* Commence une transaction, désactivation de l'auto-commit */
    $dbh->beginTransaction();

    /* Modification du schéma de la base de données */
    $sth = $dbh->exec("DROP TABLE fruit");

    /* Valide les modifications */
    $dbh->commit();

    /* La connexion à la base de données est maintenant de retour en mode auto-commit */
    ?>

> Note: Toutes les bases de données n'autorisent pas les transactions à fonctionner sur des déclarations DDL: certaines vont générer des erreurs, tandis que d'autres (y compris MySQL) vont automatiquement valider la transaction après que la première déclaration DDL aura été rencontrée.

### Voir aussi

- PDO::beginTransaction() - Démarre une transaction
- PDO::rollBack() - Annule une transaction
- Transactions et auto-commit

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open