~ubuntu-branches/ubuntu/hardy/php5/hardy-updates

« back to all changes in this revision

Viewing changes to ext/interbase/tests/006.phpt

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-10-09 03:14:32 UTC
  • Revision ID: james.westby@ubuntu.com-20051009031432-kspik3lobxstafv9
Tags: upstream-5.0.5
ImportĀ upstreamĀ versionĀ 5.0.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
--TEST--
 
2
InterBase: binding (may take a while)
 
3
--SKIPIF--
 
4
<?php include("skipif.inc"); ?>
 
5
--FILE--
 
6
<?php /* $Id: 006.phpt,v 1.11 2004/05/30 16:20:25 abies Exp $ */
 
7
 
 
8
        require("interbase.inc");
 
9
        
 
10
        ibase_connect($test_base);
 
11
        
 
12
        ibase_query(
 
13
                "create table test6 (
 
14
                        iter            integer,
 
15
                        v_char          char(1000),
 
16
                        v_date      timestamp,
 
17
                        v_decimal   decimal(12,3),
 
18
                        v_double        double precision,
 
19
                        v_float     float,
 
20
                        v_integer   integer,
 
21
                        v_numeric   numeric(4,2),
 
22
                        v_smallint  smallint,
 
23
                        v_varchar   varchar(10000)
 
24
                        )");
 
25
        ibase_query(
 
26
                "create procedure add1 (arg integer)
 
27
                returns (result integer)
 
28
                as 
 
29
                begin
 
30
                        result = arg +1;
 
31
                end");
 
32
        ibase_commit();
 
33
 
 
34
        /* if timefmt not supported, hide error */
 
35
        ini_set('ibase.timestampformat',"%m/%d/%Y %H:%M:%S");
 
36
 
 
37
        echo "insert\n";
 
38
 
 
39
        for($iter = 0; $iter < 3; $iter++) {
 
40
                /* prepare data  */
 
41
                $v_char = rand_str(1000);
 
42
                $v_date = rand_datetime();
 
43
                $v_decimal = rand_number(12,3);
 
44
                $v_double  = rand_number(20);
 
45
                $v_float   = rand_number(7);
 
46
                $v_integer = rand_number(9,0);
 
47
                $v_numeric = rand_number(4,2);
 
48
                $v_smallint = rand_number(5) % 32767;
 
49
                $v_varchar = rand_str(10000);
 
50
 
 
51
                ibase_query("insert into test6
 
52
                        (iter,v_char,v_date,v_decimal,v_double,v_float,
 
53
                        v_integer,v_numeric,v_smallint,v_varchar)
 
54
                        values (?,?,?,?,?,?,?,?,?,?)",
 
55
                        $iter, $v_char, $v_date, $v_decimal, $v_double, $v_float,
 
56
                        $v_integer, $v_numeric, $v_smallint, $v_varchar);
 
57
                $sel = ibase_query("select * from test6 where iter = ?", $iter);
 
58
 
 
59
                $row = ibase_fetch_object($sel);
 
60
                if(substr($row->V_CHAR,0,strlen($v_char)) != $v_char) {
 
61
                        echo " CHAR fail:\n";
 
62
                        echo " in:  $v_char\n";
 
63
                        echo " out: $row->V_CHAR\n";
 
64
                }
 
65
                if($row->V_DATE != $v_date) {
 
66
                        echo " DATE fail\n";
 
67
                        echo " in:  $v_date\n";
 
68
                        echo " out: $row->V_DATE\n";
 
69
                }
 
70
                if($row->V_DECIMAL != $v_decimal) {
 
71
                        echo " DECIMAL fail\n";
 
72
                        echo " in:  $v_decimal\n";
 
73
                        echo " out: $row->V_DECIMAL\n";
 
74
                }
 
75
                if(abs($row->V_DOUBLE - $v_double) > abs($v_double / 1E15)) {
 
76
                        echo " DOUBLE fail\n";
 
77
                        echo " in:  $v_double\n";
 
78
                        echo " out: $row->V_DOUBLE\n";
 
79
                }
 
80
                if(abs($row->V_FLOAT - $v_float) > abs($v_float / 1E7)) {
 
81
                        echo " FLOAT fail\n";
 
82
                        echo " in:  $v_float\n";
 
83
                        echo " out: $row->V_FLOAT\n";
 
84
                }
 
85
                if($row->V_INTEGER != $v_integer) {
 
86
                        echo " INTEGER fail\n";
 
87
                        echo " in:  $v_integer\n";
 
88
                        echo " out: $row->V_INTEGER\n";
 
89
                }
 
90
                if ($row->V_NUMERIC != $v_numeric) {
 
91
                        echo " NUMERIC fail\n";
 
92
                        echo " in:  $v_numeric\n";
 
93
                        echo " out: $row->V_NUMERIC\n";
 
94
                }
 
95
                if ($row->V_SMALLINT != $v_smallint) {
 
96
                        echo " SMALLINT fail\n";
 
97
                        echo " in:  $v_smallint\n";
 
98
                        echo " out: $row->V_SMALLINT\n";
 
99
                }
 
100
                if ($row->V_VARCHAR != $v_varchar) {
 
101
                        echo " VARCHAR fail:\n";
 
102
                        echo " in:  $v_varchar\n";
 
103
                        echo " out: $row->V_VARCHAR\n";
 
104
                }
 
105
                ibase_free_result($sel);
 
106
        }/* for($iter)*/
 
107
 
 
108
        echo "select\n";
 
109
        for($iter = 0; $iter < 3; $iter++) {
 
110
                /* prepare data  */
 
111
                $v_char = rand_str(1000);
 
112
                $v_date = (int)rand_number(10,0,0);
 
113
                $v_decimal = rand_number(12,3);
 
114
                $v_double  = rand_number(20);
 
115
                $v_float   = rand_number(7);
 
116
                $v_integer = rand_number(9,0);
 
117
                $v_numeric = rand_number(4,2);
 
118
                $v_smallint = rand_number(5) % 32767;
 
119
                $v_varchar = rand_str(10000);
 
120
 
 
121
                /* clear table*/
 
122
                ibase_query("delete from test6");
 
123
 
 
124
                /* make one record */
 
125
                ibase_query("insert into test6
 
126
                        (iter, v_char,v_date,v_decimal,
 
127
                        v_integer,v_numeric,v_smallint,v_varchar)
 
128
                        values (666, '$v_char',?,$v_decimal, $v_integer,
 
129
                        $v_numeric, $v_smallint, '$v_varchar')",$v_date);
 
130
 
 
131
                /* test all types */
 
132
                if(!($sel = ibase_query(
 
133
                        "select iter from test6 where v_char = ?", $v_char)) ||
 
134
                        !ibase_fetch_row($sel)) {
 
135
                        echo "CHAR fail\n";
 
136
                }
 
137
                ibase_free_result($sel);
 
138
                if(!($sel = ibase_query(
 
139
                        "select iter from test6 where v_date = ?", $v_date)) ||
 
140
                        !ibase_fetch_row($sel)) {
 
141
                        echo "DATE fail\n";
 
142
                }
 
143
                ibase_free_result($sel);
 
144
                if(!($sel = ibase_query(
 
145
                        "select iter from test6 where v_decimal = ?", $v_decimal)) ||
 
146
                        !ibase_fetch_row($sel)) {
 
147
                        echo "DECIMAL fail\n";
 
148
                }
 
149
                ibase_free_result($sel);
 
150
                if(!($sel = ibase_query(
 
151
                        "select iter from test6 where v_integer = ?", $v_integer)) ||
 
152
                        !ibase_fetch_row($sel)) {
 
153
                        echo "INTEGER fail\n";
 
154
                }
 
155
                ibase_free_result($sel);
 
156
                if(!($sel = ibase_query(
 
157
                        "select iter from test6 where v_numeric = ?", $v_numeric)) ||
 
158
                        !ibase_fetch_row($sel)) {
 
159
                        echo "NUMERIC fail\n";
 
160
                }
 
161
                ibase_free_result($sel);
 
162
                if(!($sel = ibase_query(
 
163
                        "select iter from test6 where v_smallint = ?", $v_smallint)) ||
 
164
                        !ibase_fetch_row($sel)) {
 
165
                        echo "SMALLINT fail\n";
 
166
                }
 
167
                ibase_free_result($sel);
 
168
                if(!($sel = ibase_query(
 
169
                        "select iter from test6 where v_varchar = ?", $v_varchar)) ||
 
170
                        !ibase_fetch_row($sel)) {
 
171
                        echo "VARCHAR fail\n";
 
172
                }
 
173
                ibase_free_result($sel);
 
174
        
 
175
        } /*for iter*/
 
176
 
 
177
        echo "prepare and exec insert\n";
 
178
 
 
179
    /* prepare table */
 
180
        ibase_query("delete from test6");
 
181
 
 
182
        /* prepare query */
 
183
        $query = ibase_prepare(
 
184
                "insert into test6 (v_integer) values (?)");
 
185
 
 
186
        for($i = 0; $i < 10; $i++) {
 
187
                ibase_execute($query, $i);
 
188
        }
 
189
 
 
190
        out_table("test6");
 
191
 
 
192
        ibase_free_query($query);
 
193
 
 
194
        echo "prepare and exec select\n";
 
195
 
 
196
        /* prepare query */
 
197
        $query = ibase_prepare("select * from test6
 
198
                where v_integer between ? and ?");
 
199
 
 
200
        $low_border = 2;
 
201
        $high_border = 6;
 
202
 
 
203
        $res = ibase_execute($query, $low_border, $high_border);
 
204
        out_result($res, "test6");
 
205
        ibase_free_result($res);
 
206
 
 
207
        $low_border = 0;
 
208
        $high_border = 4;
 
209
        $res = ibase_execute($query, $low_border, $high_border);
 
210
        out_result($res, "test6");
 
211
        ibase_free_result($res);
 
212
 
 
213
        $res = ibase_execute($query, "5", 7.5);
 
214
        out_result($res, "test6");
 
215
        ibase_free_result($res);
 
216
 
 
217
        ibase_free_query($query);
 
218
 
 
219
        /* test execute procedure */
 
220
        $query = ibase_prepare("execute procedure add1(?)");
 
221
        $res = array();
 
222
        for ($i = 0; $i < 10; $i++) {
 
223
                $res[] = ibase_execute($query,$i);
 
224
        }
 
225
        ibase_free_query($query);
 
226
        foreach ($res as $r) {
 
227
                out_result($r, "proc add1");
 
228
                ibase_free_result($r);
 
229
        }
 
230
 
 
231
        ibase_close();
 
232
        echo "end of test\n";
 
233
?>
 
234
--EXPECT--
 
235
insert
 
236
select
 
237
prepare and exec insert
 
238
--- test6 ---
 
239
                                                0                               
 
240
                                                1                               
 
241
                                                2                               
 
242
                                                3                               
 
243
                                                4                               
 
244
                                                5                               
 
245
                                                6                               
 
246
                                                7                               
 
247
                                                8                               
 
248
                                                9                               
 
249
---
 
250
prepare and exec select
 
251
--- test6 ---
 
252
                                                2                               
 
253
                                                3                               
 
254
                                                4                               
 
255
                                                5                               
 
256
                                                6                               
 
257
---
 
258
--- test6 ---
 
259
                                                0                               
 
260
                                                1                               
 
261
                                                2                               
 
262
                                                3                               
 
263
                                                4                               
 
264
---
 
265
--- test6 ---
 
266
                                                5                               
 
267
                                                6                               
 
268
                                                7                               
 
269
---
 
270
--- proc add1 ---
 
271
1       
 
272
---
 
273
--- proc add1 ---
 
274
2       
 
275
---
 
276
--- proc add1 ---
 
277
3       
 
278
---
 
279
--- proc add1 ---
 
280
4       
 
281
---
 
282
--- proc add1 ---
 
283
5       
 
284
---
 
285
--- proc add1 ---
 
286
6       
 
287
---
 
288
--- proc add1 ---
 
289
7       
 
290
---
 
291
--- proc add1 ---
 
292
8       
 
293
---
 
294
--- proc add1 ---
 
295
9       
 
296
---
 
297
--- proc add1 ---
 
298
10      
 
299
---
 
300
end of test
 
301