sqlsrv_rollback
(No version information available, might only be in SVN)
sqlsrv_rollback — Annule une transaction qui a été commencée grâce à la fonction sqlsrv_begin_transaction()
Description
bool sqlsrv_rollback
( resource
$conn
)Annule une transaction qui a été commencée grâce à la fonction sqlsrv_begin_transaction() et retourne la connexion en mode auto-validation.
Liste de paramètres
-
conn
-
La ressource de connexion retournée par un appel à la fonction sqlsrv_connect().
Valeurs de retour
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Exemples
Exemple #1 Exemple avec 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 ));
- }
- /* Commence la transaction. */
- if ( sqlsrv_begin_transaction( $conn ) === false ) {
- die( print_r( sqlsrv_errors(), true ));
- }
- /* Initialise les valeurs des paramètres. */
- $orderId = 1; $qty = 10; $productId = 100;
- /* 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 );
- /* Exécute 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 été exécutées avec succès,
- on valide la transaction */
- /* Sinon, on annule la transaction. */
- 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_commit() - Valide une transaction commencée avec la fonction sqlsrv_begin_transaction