在线文档教程

sqlsrv_commit

sqlsrv_commit

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

sqlsrv_commit - 提交以sqlsrv_begin_transaction()开始的事务

描述

bool sqlsrv_commit ( resource $conn )

提交以sqlsrv_begin_transaction()开始的事务。调用sqlsrv_commit()后,连接将返回到自动提交模式。提交的事务包括在调用sqlsrv_begin_transaction()之后执行的所有语句。应该使用这些函数启动并提交或回滚显式事务,而不是执行开始和提交/回滚事务的SQL语句。有关更多信息,请参阅»SQLSRV事务。

参数

conn

要提交事务的连接。

返回值

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

例子

示例#1 sqlsrv_commit()示例

以下示例演示如何将sqlsrv_commit()与sqlsrv_begin_transaction()和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 />"; } ?>