PageRenderTime 47ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/php/function.sqlsrv-begin-transaction.html

https://bitbucket.org/thncr/manuals
HTML | 108 lines | 90 code | 18 blank | 0 comment | 0 complexity | 441e39f9590dc52ed1d9284175dca166 MD5 | raw file
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  5. <title>Begins a database transaction</title>
  6. </head>
  7. <body><div class="manualnavbar" style="text-align: center;">
  8. <div class="prev" style="text-align: left; float: left;"><a href="ref.sqlsrv.html">SQLSRV 函数</a></div>
  9. <div class="next" style="text-align: right; float: right;"><a href="function.sqlsrv-cancel.html">sqlsrv_cancel</a></div>
  10. <div class="up"><a href="ref.sqlsrv.html">SQLSRV 函数</a></div>
  11. <div class="home"><a href="index.html">PHP Manual</a></div>
  12. </div><hr /><div id="function.sqlsrv-begin-transaction" class="refentry">
  13. <div class="refnamediv">
  14. <h1 class="refname">sqlsrv_begin_transaction</h1>
  15. <p class="verinfo">(No version information available, might only be in SVN)</p><p class="refpurpose"><span class="refname">sqlsrv_begin_transaction</span> &mdash; <span class="dc-title">Begins a database transaction</span></p>
  16. </div>
  17. <div class="refsect1 description" id="refsect1-function.sqlsrv-begin-transaction-description">
  18. <h3 class="title">说明</h3>
  19. <div class="methodsynopsis dc-description">
  20. <span class="type">bool</span> <span class="methodname"><strong>sqlsrv_begin_transaction</strong></span>
  21. ( <span class="methodparam"><span class="type">resource</span> <code class="parameter">$conn</code></span>
  22. )</div>
  23. <p class="para rdfs-comment">
  24. The transaction begun by <span class="function"><strong>sqlsrv_begin_transaction()</strong></span> includes
  25. all statements that were executed after the call to
  26. <span class="function"><strong>sqlsrv_begin_transaction()</strong></span> and before calls to
  27. <span class="function"><a href="function.sqlsrv-rollback.html" class="function">sqlsrv_rollback()</a></span> or <span class="function"><a href="function.sqlsrv-commit.html" class="function">sqlsrv_commit()</a></span>.
  28. Explicit transactions should be started and committed or rolled back using
  29. these functions instead of executing SQL statements that begin and committ/roll
  30. back transactions. For more information, see
  31. <a href="http://msdn.microsoft.com/en-us/library/cc296206.aspx" class="link external">&raquo;&nbsp;SQLSRV Transactions</a>.
  32. </p>
  33. </div>
  34. <div class="refsect1 parameters" id="refsect1-function.sqlsrv-begin-transaction-parameters">
  35. <h3 class="title">参数</h3>
  36. <p class="para">
  37. <dl>
  38. <dt>
  39. <span class="term"><em><code class="parameter">conn</code></em></span>
  40. <dd>
  41. <p class="para">
  42. The connection resource returned by a call to <span class="function"><a href="function.sqlsrv-connect.html" class="function">sqlsrv_connect()</a></span>.
  43. </p>
  44. </dd>
  45. </dt>
  46. </dl>
  47. </p>
  48. </div>
  49. <div class="refsect1 returnvalues" id="refsect1-function.sqlsrv-begin-transaction-returnvalues">
  50. <h3 class="title">返回值</h3>
  51. <p class="para">
  52. 成功时返回 <strong><code>TRUE</code></strong> 或者在失败时返回 <strong><code>FALSE</code></strong>.
  53. </p>
  54. </div>
  55. <div class="refsect1 examples" id="refsect1-function.sqlsrv-begin-transaction-examples">
  56. <h3 class="title">范例</h3>
  57. <p class="para">
  58. <div class="example" id="example-2135">
  59. <p><strong>Example #1 <span class="function"><strong>sqlsrv_begin_transaction()</strong></span> example</strong></p>
  60. <div class="example-contents"><p>
  61. The following example demonstrates how to use
  62. <span class="function"><strong>sqlsrv_begin_transaction()</strong></span> together with
  63. <span class="function"><a href="function.sqlsrv-commit.html" class="function">sqlsrv_commit()</a></span> and <span class="function"><a href="function.sqlsrv-rollback.html" class="function">sqlsrv_rollback()</a></span>.
  64. </p></div>
  65. <div class="example-contents">
  66. <div class="phpcode"><code><span style="color: #000000">
  67. <span style="color: #0000BB">&lt;?php<br />$serverName&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"serverName\sqlexpress"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$connectionInfo&nbsp;</span><span style="color: #007700">=&nbsp;array(&nbsp;</span><span style="color: #DD0000">"Database"</span><span style="color: #007700">=&gt;</span><span style="color: #DD0000">"dbName"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"UID"</span><span style="color: #007700">=&gt;</span><span style="color: #DD0000">"userName"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"PWD"</span><span style="color: #007700">=&gt;</span><span style="color: #DD0000">"password"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">sqlsrv_connect</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">$serverName</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$connectionInfo</span><span style="color: #007700">);<br />if(&nbsp;</span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;die(&nbsp;</span><span style="color: #0000BB">print_r</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">sqlsrv_errors</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">true&nbsp;</span><span style="color: #007700">));<br />}<br /><br /></span><span style="color: #FF8000">/*&nbsp;Begin&nbsp;the&nbsp;transaction.&nbsp;*/<br /></span><span style="color: #007700">if&nbsp;(&nbsp;</span><span style="color: #0000BB">sqlsrv_begin_transaction</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">)&nbsp;===&nbsp;</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;die(&nbsp;</span><span style="color: #0000BB">print_r</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">sqlsrv_errors</span><span style="color: #007700">(),&nbsp;</span><span style="color: #0000BB">true&nbsp;</span><span style="color: #007700">));<br />}<br /><br /></span><span style="color: #FF8000">/*&nbsp;Initialize&nbsp;parameter&nbsp;values.&nbsp;*/<br /></span><span style="color: #0000BB">$orderId&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">$qty&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">10</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">$productId&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">100</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/*&nbsp;Set&nbsp;up&nbsp;and&nbsp;execute&nbsp;the&nbsp;first&nbsp;query.&nbsp;*/<br /></span><span style="color: #0000BB">$sql1&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"INSERT&nbsp;INTO&nbsp;OrdersTable&nbsp;(ID,&nbsp;Quantity,&nbsp;ProductID)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUES&nbsp;(?,&nbsp;?,&nbsp;?)"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$params1&nbsp;</span><span style="color: #007700">=&nbsp;array(&nbsp;</span><span style="color: #0000BB">$orderId</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$qty</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$productId&nbsp;</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stmt1&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">sqlsrv_query</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">$conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$sql1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$params1&nbsp;</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;Set&nbsp;up&nbsp;and&nbsp;execute&nbsp;the&nbsp;second&nbsp;query.&nbsp;*/<br /></span><span style="color: #0000BB">$sql2&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"UPDATE&nbsp;InventoryTable&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;Quantity&nbsp;=&nbsp;(Quantity&nbsp;-&nbsp;?)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;ProductID&nbsp;=&nbsp;?"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$params2&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #0000BB">$qty</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$productId</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stmt2&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">sqlsrv_query</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">$conn</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$sql2</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$params2&nbsp;</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/*&nbsp;If&nbsp;both&nbsp;queries&nbsp;were&nbsp;successful,&nbsp;commit&nbsp;the&nbsp;transaction.&nbsp;*/<br />/*&nbsp;Otherwise,&nbsp;rollback&nbsp;the&nbsp;transaction.&nbsp;*/<br /></span><span style="color: #007700">if(&nbsp;</span><span style="color: #0000BB">$stmt1&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;</span><span style="color: #0000BB">$stmt2&nbsp;</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">sqlsrv_commit</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Transaction&nbsp;committed.&lt;br&nbsp;/&gt;"</span><span style="color: #007700">;<br />}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">sqlsrv_rollback</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">$conn&nbsp;</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Transaction&nbsp;rolled&nbsp;back.&lt;br&nbsp;/&gt;"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
  68. </span>
  69. </code></div>
  70. </div>
  71. <div class="example-contents"><p>以上例程的输出类似于</p></div>
  72. </div>
  73. </p>
  74. </div>
  75. <div class="refsect1 seealso" id="refsect1-function.sqlsrv-begin-transaction-seealso">
  76. <h3 class="title">参见</h3>
  77. <p class="para">
  78. <ul class="simplelist">
  79. <li class="member"> <span class="function"><a href="function.sqlsrv-commit.html" class="function" rel="rdfs-seeAlso">sqlsrv_commit()</a> - Commits a transaction that was begun with sqlsrv_begin_transaction</span></li>
  80. <li class="member"> <span class="function"><a href="function.sqlsrv-rollback.html" class="function" rel="rdfs-seeAlso">sqlsrv_rollback()</a> - Rolls back a transaction that was begun with
  81. sqlsrv_begin_transaction</span></li>
  82. </ul>
  83. </p>
  84. </div>
  85. </div><hr /><div class="manualnavbar" style="text-align: center;">
  86. <div class="prev" style="text-align: left; float: left;"><a href="ref.sqlsrv.html">SQLSRV 函数</a></div>
  87. <div class="next" style="text-align: right; float: right;"><a href="function.sqlsrv-cancel.html">sqlsrv_cancel</a></div>
  88. <div class="up"><a href="ref.sqlsrv.html">SQLSRV 函数</a></div>
  89. <div class="home"><a href="index.html">PHP Manual</a></div>
  90. </div></body></html>