Valide une transaction commencée avec la fonction sqlsrv_begin_transaction

# sqlsrv_commit

(No version information available, might only be in Git)

sqlsrv_commit — Valide une transaction commencée avec la fonction sqlsrv_begin_transaction()

### Description

function sqlsrv_commit(resource `$conn`): bool

Valide une transaction commencée par la fonction sqlsrv_begin_transaction(). La connexion est retournée en mode auto-commit après l'appel à la fonction sqlsrv_commit(). La transaction validée inclut toutes les requêtes exécutées après un appel à la fonction sqlsrv_begin_transaction(). Les transactions doivent commencer, être validées ou être annulées en utilisant ces fonctions au lieu d'utiliser des requêtes déclarant le début ou l'annulation d'une transaction. Pour plus d'informations, se reporter aux » transactions SQLSRV.

### Liste de paramètres

`conn`
  La connexion sur laquelle la transaction va être validée.

### Valeurs de retour

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

### Exemples

Exemple #1 Exemple avec sqlsrv_commit()

L'exemple suivant montre la façon d'utiliser la fonction sqlsrv_commit() avec sqlsrv_begin_transaction() et sqlsrv_rollback().

    <?php
    $serverName = "serverName\sqlexpress";
    $connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
    if( $conn === false ) {
        die( print_r( sqlsrv_errors(), true ));
    }

    /* Début de la transaction. */
    if ( sqlsrv_begin_transaction( $conn ) === false ) {
         die( print_r( sqlsrv_errors(), true ));
    }

    /* Initialisation des paramètres. */
    $orderId = 1; $qty = 10; $productId = 100;

    /* Définition et exécution de la première requête. */
    $sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
             VALUES (?, ?, ?)";
    $params1 = array( $orderId, $qty, $productId );
    $stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

    /* Définition et exécution de la seconde requête. */
    $sql2 = "UPDATE InventoryTable
             SET Quantity = (Quantity - ?)
             WHERE ProductID = ?";
    $params2 = array($qty, $productId);
    $stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

    /* Si les deux requêtes ont réussi, on commit la transaction. */
    /* Sinon, on l'annule. */
    if( $stmt1 && $stmt2 ) {
         sqlsrv_commit( $conn );
         echo "Transaction validée.<br />";
    } else {
         sqlsrv_rollback( $conn );
         echo "Transaction annulée.<br />";
    }
    ?>

### Voir aussi

- sqlsrv_begin_transaction() - Commence une transaction
- sqlsrv_rollback() - Annule une transaction qui a été commencée grâce à la fonction sqlsrv_begin_transaction

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