-
Notifications
You must be signed in to change notification settings - Fork 76
/
Copy pathdb2-rollback.xml
140 lines (129 loc) · 4.2 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
137
138
139
140
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: f0cce809dfb3127489f04236cfd1a77aa9980ec4 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- Generated by xml_proto.php v2.2. Found in /scripts directory of phpdoc. -->
<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, используется
автоподтверждение транзакций, так что функция
<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>
В следующем примере мы посчитаем количество строк в
таблице, отключим автоподтверждение транзакций, удалим
все строки в таблице и убедимся, что их стало
<literal>0</literal>. После этого мы используем функцию
<function>db2_rollback</function> и проверим, что число
строк в таблице стало таким же, как и до удаления - это
подтвердит, что транзакция успешно откатилась.
</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";
// Отключаем автоподтверждение
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
-->