sqlsrv_rollback

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

sqlsrv_rollbackAnnule 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()

  1. <?php
  2. $serverName = "serverName\sqlexpress";
  3. $connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
  4. $conn = sqlsrv_connect( $serverName, $connectionInfo);
  5. if( $conn === false ) {
  6. die( print_r( sqlsrv_errors(), true ));
  7. }
  8.  
  9. /* Commence la transaction. */
  10. if ( sqlsrv_begin_transaction( $conn ) === false ) {
  11. die( print_r( sqlsrv_errors(), true ));
  12. }
  13.  
  14. /* Initialise les valeurs des paramètres. */
  15. $orderId = 1; $qty = 10; $productId = 100;
  16.  
  17. /* Exécution de la première requête. */
  18. $sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
  19. VALUES (?, ?, ?)";
  20. $params1 = array( $orderId, $qty, $productId );
  21. $stmt1 = sqlsrv_query( $conn, $sql1, $params1 );
  22.  
  23. /* Exécute la seconde requête. */
  24. $sql2 = "UPDATE InventoryTable
  25. SET Quantity = (Quantity - ?)
  26. WHERE ProductID = ?";
  27. $params2 = array($qty, $productId);
  28. $stmt2 = sqlsrv_query( $conn, $sql2, $params2 );
  29.  
  30. /* Si les deux requêtes ont été exécutées avec succès,
  31. on valide la transaction */
  32. /* Sinon, on annule la transaction. */
  33. if( $stmt1 && $stmt2 ) {
  34. sqlsrv_commit( $conn );
  35. echo "Transaction validée.<br />";
  36. } else {
  37. sqlsrv_rollback( $conn );
  38. echo "Transaction annulée.<br />";
  39. }
  40. ?>

Voir aussi

LoadingChargement en cours