-
Notifications
You must be signed in to change notification settings - Fork 109
Expand file tree
/
Copy pathrollback.xml
More file actions
112 lines (100 loc) · 3.08 KB
/
Copy pathrollback.xml
File metadata and controls
112 lines (100 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 661e6858acade9f5a08fc8f9c07b605f42f4a700 Maintainer: anonymous #27375 Status: ready -->
<!-- CREDITS: mowangjuanzi -->
<refentry xml:id="pdo.rollback" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>PDO::rollBack</refname>
<refpurpose>
回滚事务
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="PDO">
<modifier>public</modifier> <type>bool</type><methodname>PDO::rollBack</methodname>
<void/>
</methodsynopsis>
<para>
回滚由 <methodname>PDO::beginTransaction</methodname> 发起的当前事务。如果没有事务激活,将抛出一个 <classname>PDOException</classname> 异常。
</para>
<para>
如果数据库被设置成自动提交模式,此函数(方法)在回滚事务之后将恢复自动提交模式。
</para>
<para>
包括 MySQL 在内的一些数据库, 当在一个事务内有类似删除或创建数据表等 DLL 语句时,会自动导致一个隐式地提交。隐式地提交将无法回滚此事务范围内的任何更改。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
如果没有活动的事务,则抛出 <classname>PDOException</classname>。
</para>
&pdo.errors.exception-not-errmode;
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example><title>回滚一个事务</title>
<para>
下面示例在回滚更改之前开始一个事务并发出两条修改数据库的语句。但在 MySQL 中,DROP TABLE 语句自动提交事务,因此在此事务内的任何更改都不会被回滚。
</para>
<programlisting role="php">
<![CDATA[
<?php
/* 开始一个事务,关闭自动提交 */
$dbh->beginTransaction();
/* 更改数据库架构和数据 */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
SET name = 'hamburger'");
/* 识别错误且回滚更改 */
$dbh->rollBack();
/* 此时数据库连接恢复到自动提交模式 */
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>PDO::beginTransaction</methodname></member>
<member><methodname>PDO::commit</methodname></member>
<member><link linkend="pdo.transactions">事务和自动提交</link></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->