-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathdb2-rollback.xml
136 lines (124 loc) · 3.82 KB
/
db2-rollback.xml
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: f0cce809dfb3127489f04236cfd1a77aa9980ec4 Maintainer: takagi Status: ready -->
<refentry xml:id="function.db2-rollback" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>db2_rollback</refname>
<refpurpose>
トランザクションをロールバックする
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>db2_rollback</methodname>
<methodparam><type>resource</type><parameter>connection</parameter></methodparam>
</methodsynopsis>
<para>
指定した接続リソース上で実行中のトランザクションをロールバックし、
新しいトランザクションを開始します。PHP アプリケーションのデフォルトは
AUTOCOMMIT モードなので、接続リソースに対して AUTOCOMMIT
を無効にしていない限り <function>db2_rollback</function> は何の意味もありません。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>connection</parameter></term>
<listitem>
<para>
<function>db2_connect</function> あるいは <function>db2_pconnect</function>
が返した有効なデータベース接続リソース。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>DELETE 文のロールバック</title>
<para>
以下の例では、テーブルの行数を数えた後にデータベース接続の AUTOCOMMIT
を無効にし、テーブルのすべての行を削除した上で、
行数が <literal>0</literal> となっていることを確認します。
それから、<function>db2_rollback</function> を発行して再度行数を取得し、
DELETE 文の発行前の状態に戻っていることを確認します。
これにより、トランザクションのロールバックが正常に行われたことを示します。
</para>
<programlisting role="php">
<![CDATA[
<?php
$conn = db2_connect($database, $user, $password);
if ($conn) {
$stmt = db2_exec($conn, "SELECT count(*) FROM animals");
$res = db2_fetch_array( $stmt );
echo $res[0] . "\n";
// AUTOCOMMIT を無効にします
db2_autocommit($conn, DB2_AUTOCOMMIT_OFF);
// ANIMALS のすべての行を削除します
db2_exec($conn, "DELETE FROM animals");
$stmt = db2_exec($conn, "SELECT count(*) FROM animals");
$res = db2_fetch_array( $stmt );
echo $res[0] . "\n";
// DELETE 文をロールバックします
db2_rollback( $conn );
$stmt = db2_exec( $conn, "SELECT count(*) FROM animals" );
$res = db2_fetch_array( $stmt );
echo $res[0] . "\n";
db2_close($conn);
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
7
0
7
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>db2_autocommit</function></member>
<member><function>db2_commit</function></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
-->