文字

sqlsrv_begin_transaction

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

sqlsrv_begin_transactionBegins a database transaction

说明

bool sqlsrv_begin_transaction ( resource $conn )

The transaction begun by sqlsrv_begin_transaction() includes all statements that were executed after the call to sqlsrv_begin_transaction() and before calls to sqlsrv_rollback() or sqlsrv_commit() . Explicit transactions should be started and committed or rolled back using these functions instead of executing SQL statements that begin and committ/roll back transactions. For more information, see » SQLSRV Transactions.

参数

conn

The connection resource returned by a call to sqlsrv_connect() .

返回值

成功时返回 TRUE , 或者在失败时返回 FALSE

范例

Example #1 sqlsrv_begin_transaction() 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_commit() - Commits a transaction that was begun with sqlsrv_begin_transaction
  • sqlsrv_rollback() - Rolls back a transaction that was begun with sqlsrv_begin_transaction
上一篇: 下一篇: