@@ -6,7 +6,7 @@ InterBase: transactions
6
6
<?php
7
7
8
8
require ("interbase.inc " );
9
-
9
+
10
10
ibase_connect ($ test_base );
11
11
12
12
@ibase_query ("create table test5 (i integer) " );
@@ -15,7 +15,7 @@ InterBase: transactions
15
15
16
16
17
17
echo "default transaction: \n" ;
18
-
18
+
19
19
/*
20
20
Difference between default and other transactions:
21
21
default committed when you call ibase_close().
@@ -30,14 +30,14 @@ ibase_blob_create(), ibase_blob_import() first time.
30
30
/*
31
31
simple default transaction test without ibase_trans()
32
32
*/
33
-
33
+
34
34
ibase_connect ($ test_base );
35
35
36
36
echo "empty table \n" ;
37
37
38
38
/* out_table call ibase_query()
39
39
and ibase_query() start default transaction */
40
- out_table ("test5 " );
40
+ out_table ("test5 " );
41
41
42
42
/* in default transaction context */
43
43
ibase_query ("insert into test5 (i) values (1) " );
@@ -49,13 +49,13 @@ simple default transaction test without ibase_trans()
49
49
50
50
echo "after rollback table empty again \n" ;
51
51
out_table ("test5 " ); /* started new default transaction */
52
-
52
+
53
53
ibase_query ("insert into test5 (i) values (2) " );
54
54
55
55
ibase_close (); /* commit here! */
56
-
56
+
57
57
ibase_connect ($ test_base );
58
-
58
+
59
59
echo "one row \n" ;
60
60
out_table ("test5 " );
61
61
ibase_close ();
@@ -66,30 +66,30 @@ First open transaction on link will be default.
66
66
$tr_def_l1 may be omitted. All queryes without link and trans
67
67
parameters run in this context
68
68
*/
69
-
69
+
70
70
$ link_def = ibase_connect ($ test_base );
71
-
71
+
72
72
$ tr_def_l1 = ibase_trans (IBASE_READ ); /* here transaction start */
73
-
73
+
74
74
/* all default */
75
75
$ res = ibase_query ("select * from test5 " );
76
-
76
+
77
77
echo "one row \n" ;
78
78
out_result ($ res ,"test5 " );
79
79
80
80
ibase_free_result ($ res );
81
81
82
82
/* specify transaction context... */
83
83
$ res = ibase_query ($ tr_def_l1 , "select * from test5 " );
84
-
84
+
85
85
echo "one row... again. \n" ;
86
86
out_result ($ res ,"test5 " );
87
87
88
88
ibase_free_result ($ res );
89
-
89
+
90
90
/* specify default transaction on link */
91
91
$ res = ibase_query ($ link_def , "select * from test5 " );
92
-
92
+
93
93
echo "one row. \n" ;
94
94
out_result ($ res ,"test5 " );
95
95
@@ -98,110 +98,110 @@ parameters run in this context
98
98
ibase_rollback ($ link_def ); /* just for example */
99
99
100
100
ibase_close ();
101
-
101
+
102
102
/*
103
103
three transaction on default link
104
104
*/
105
105
ibase_connect ($ test_base );
106
-
106
+
107
107
$ res = ibase_query ("select * from test5 " );
108
-
108
+
109
109
echo "one row \n" ;
110
110
out_result ($ res ,"test5 " );
111
111
112
112
ibase_free_result ($ res );
113
113
114
114
$ tr_1 = ibase_query ("SET TRANSACTION " );
115
115
$ tr_2 = ibase_query ("SET TRANSACTION READ ONLY " );
116
- $ tr_3 = ibase_trans (IBASE_READ +IBASE_COMMITTED +IBASE_REC_VERSION +IBASE_WAIT );
117
- $ tr_4 = ibase_trans (IBASE_READ +IBASE_COMMITTED +IBASE_REC_NO_VERSION +IBASE_NOWAIT );
118
-
116
+ $ tr_3 = ibase_trans (IBASE_READ +IBASE_COMMITTED +IBASE_REC_VERSION +IBASE_WAIT );
117
+ $ tr_4 = ibase_trans (IBASE_READ +IBASE_COMMITTED +IBASE_REC_NO_VERSION +IBASE_NOWAIT );
118
+
119
119
/* insert in first transaction context... */
120
120
/* as default */
121
121
ibase_query ("insert into test5 (i) values (3) " );
122
122
/* specify context */
123
123
ibase_query ($ tr_1 , "insert into test5 (i) values (4) " );
124
-
124
+
125
125
$ res = ibase_query ("select * from test5 " );
126
-
126
+
127
127
echo "two rows \n" ;
128
128
out_result ($ res ,"test5 " );
129
129
130
130
ibase_free_result ($ res );
131
-
131
+
132
132
$ res = ibase_query ($ tr_1 , "select * from test5 " );
133
-
133
+
134
134
echo "two rows again \n" ;
135
135
out_result ($ res ,"test5 " );
136
136
137
137
ibase_free_result ($ res );
138
-
138
+
139
139
ibase_commit ();
140
140
ibase_commit ($ tr_1 );
141
141
142
142
$ tr_1 = ibase_trans ();
143
143
ibase_query ($ tr_1 , "insert into test5 (i) values (5) " );
144
-
144
+
145
145
/* tr_2 is IBASE_READ + IBASE_CONCURRENCY + IBASE_WAIT */
146
146
$ res = ibase_query ($ tr_2 , "select * from test5 " );
147
-
147
+
148
148
echo "one row in second transaction \n" ;
149
149
out_result ($ res ,"test5 " );
150
150
151
151
ibase_free_result ($ res );
152
152
153
153
/* tr_3 is IBASE_COMMITTED + IBASE_REC_VERSION + IBASE_WAIT */
154
154
$ res = ibase_query ($ tr_3 , "select * from test5 " );
155
-
155
+
156
156
echo "three rows in third transaction \n" ;
157
157
out_result ($ res ,"test5 " );
158
158
159
159
ibase_free_result ($ res );
160
160
161
161
/* tr_4 IBASE_COMMITTED + IBASE_REC_NO_VERSION + IBASE_NOWAIT */
162
162
$ res = ibase_query ($ tr_4 , "select * from test5 " );
163
-
163
+
164
164
echo "three rows in fourth transaction with deadlock \n" ;
165
165
out_result_trap_error ($ res ,"test5 " );
166
166
167
- ibase_free_result ($ res );
168
-
167
+ ibase_free_result ($ res );
168
+
169
169
ibase_rollback ($ tr_1 );
170
170
ibase_close ();
171
171
/*
172
172
transactions on second link
173
173
*/
174
174
$ link_1 = ibase_pconnect ($ test_base );
175
175
$ link_2 = ibase_pconnect ($ test_base );
176
-
176
+
177
177
$ tr_1 = ibase_trans (IBASE_DEFAULT , $ link_2 ); /* this default transaction also */
178
178
$ tr_2 = ibase_trans (IBASE_COMMITTED , $ link_2 );
179
-
179
+
180
180
$ res = ibase_query ($ tr_1 , "select * from test5 " );
181
-
181
+
182
182
echo "three rows \n" ;
183
183
out_result ($ res ,"test5 " );
184
184
185
185
ibase_free_result ($ res );
186
186
187
187
ibase_query ($ tr_1 , "insert into test5 (i) values (5) " );
188
-
188
+
189
189
$ res = ibase_query ($ tr_1 , "select * from test5 " );
190
-
190
+
191
191
echo "four rows \n" ;
192
192
out_result ($ res ,"test5 " );
193
193
194
194
ibase_free_result ($ res );
195
-
195
+
196
196
ibase_commit ($ tr_1 );
197
-
197
+
198
198
$ res = ibase_query ($ tr_2 , "select * from test5 " );
199
-
199
+
200
200
echo "four rows again \n" ;
201
201
out_result ($ res ,"test5 " );
202
202
203
203
ibase_free_result ($ res );
204
-
204
+
205
205
ibase_close ($ link_1 );
206
206
ibase_close ($ link_2 );
207
207
0 commit comments