文字

sqlsrv_rollback

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

sqlsrv_rollbackRolls back a transaction that was begun with sqlsrv_begin_transaction()

说明

bool sqlsrv_rollback ( resource $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 />" ;
}
?>

参见

  • sqlsrv_begin_transaction() - Begins a database transaction
  • sqlsrv_commit() - Commits a transaction that was begun with sqlsrv_begin_transaction
上一篇: 下一篇: