在线文档教程

sqlsrv_rollback

sqlsrv_rollback

(没有可用的版本信息,可能只在Git中)

sqlsrv_rollback - 回退以sqlsrv_begin_transaction()开始的事务

描述

bool sqlsrv_rollback ( resource $conn )

回退以sqlsrv_begin_transaction()开始的事务并将连接返回到自动提交模式。

参数

conn

由调用sqlsrv_connect()返回的连接资源。

返回值

成功时返回TRUE或失败时返回FALSE

例子

示例#1 sqlsrv_rollback()示例

以下示例演示如何将sqlsrv_begin_transaction()与sqlsrv_commit()和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 ) } /* Begin the transaction. */ if ( sqlsrv_begin_transaction( $conn ) === false ) {      die( print_r( sqlsrv_errors(), true ) } /* Initialize parameter values. */ $orderId = 1; $qty = 10; $productId = 100; /* Set up and execute the first query. */ $sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)          VALUES (?, ?, ?)"; $params1 = array( $orderId, $qty, $productId  $stmt1 = sqlsrv_query( $conn, $sql1, $params1  /* Set up and execute the second query. */ $sql2 = "UPDATE InventoryTable           SET Quantity = (Quantity - ?)           WHERE ProductID = ?"; $params2 = array($qty, $productId $stmt2 = sqlsrv_query( $conn, $sql2, $params2  /* If both queries were successful, commit the transaction. */ /* Otherwise, rollback the transaction. */ if( $stmt1 && $stmt2 ) {      sqlsrv_commit( $conn       echo "Transaction committed.<br />"; } else {      sqlsrv_rollback( $conn       echo "Transaction rolled back.<br />"; } ?>