©
                    本文档使用
                    php中文网手册 发布
                
(No version information available, might only be in Git)
sqlsrv_rollback — Rolls back a transaction that was begun with sqlsrv_begin_transaction()
$conn 
   )Rolls back a transaction that was begun with sqlsrv_begin_transaction() and returns the connection to auto-commit mode.
conn The connection resource returned by a call to sqlsrv_connect() .
   成功时返回  TRUE , 或者在失败时返回  FALSE 。
  
Example #1 sqlsrv_rollback() example
The following example demonstrates how to use sqlsrv_begin_transaction() together with sqlsrv_commit() and 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  ));
}
 
 if (  sqlsrv_begin_transaction (  $conn  ) ===  false  ) {
     die(  print_r (  sqlsrv_errors (),  true  ));
}
 
 $orderId  =  1 ;  $qty  =  10 ;  $productId  =  100 ;
 
 $sql1  =  "INSERT INTO OrdersTable (ID, Quantity, ProductID)
         VALUES (?, ?, ?)" ;
 $params1  = array(  $orderId ,  $qty ,  $productId  );
 $stmt1  =  sqlsrv_query (  $conn ,  $sql1 ,  $params1  );
 
 $sql2  =  "UPDATE InventoryTable 
         SET Quantity = (Quantity - ?) 
         WHERE ProductID = ?" ;
 $params2  = array( $qty ,  $productId );
 $stmt2  =  sqlsrv_query (  $conn ,  $sql2 ,  $params2  );
 
 if(  $stmt1  &&  $stmt2  ) {
      sqlsrv_commit (  $conn  );
     echo  "Transaction committed.<br />" ;
} else {
      sqlsrv_rollback (  $conn  );
     echo  "Transaction rolled back.<br />" ;
}
 ?>