Annotation of embedaddon/php/ext/oci8/tests/error_parse.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test error handling when persistent connection is passed to oci_error()
3: --SKIPIF--
4: <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
5: --FILE--
6: <?php
7:
8: // As part of the fix for Bug 42134, an error handling difference was
9: // noticed when oci_error() was passed a persistent connection. This
10: // was fixed and the behavior of oci_error() for all connections types
11: // was made consistent.
12:
13: require(dirname(__FILE__).'/details.inc');
14:
15: // Test parse error for normal connection
16:
17: if (!empty($dbase)) {
18: $c1 = oci_connect($user,$password,$dbase);
19: }
20: else {
21: $c1 = oci_connect($user,$password);
22: }
23:
24: $s = @oci_parse($c1, "select ' from dual");
25: if (!$s) {
26: echo "Normal connection: Parse error\n";
27: $m = oci_error($c1);
28: var_dump($m);
29: }
30:
31: // Test parse error for new connection
32:
33: if (!empty($dbase)) {
34: $c2 = oci_new_connect($user,$password,$dbase);
35: }
36: else {
37: $c2 = oci_new_connect($user,$password);
38: }
39:
40: $s = @oci_parse($c2, "select ' from dual");
41: if (!$s) {
42: echo "New connection: Parse error\n";
43: $m = oci_error($c2);
44: var_dump($m);
45: }
46:
47: // Test parse error for persistent connection
48:
49: if (!empty($dbase)) {
50: $c3 = oci_pconnect($user,$password,$dbase);
51: }
52: else {
53: $c3 = oci_pconnect($user,$password);
54: }
55:
56: $s = @oci_parse($c3, "select ' from dual");
57: if (!$s) {
58: echo "Persistent connection: Parse error\n";
59: $m = oci_error($c3);
60: var_dump($m);
61: }
62:
63: // Verify that passing no connection doesn't affect future calls
64:
65: $m = oci_error();
66: echo "No connection: error: ";
67: var_dump($m);
68:
69: // Check the errors are still accessible in the respective handles
70:
71: $m = oci_error($c1);
72: echo "Normal connection (take #2): Parse error: ";
73: echo $m["message"], "\n";
74:
75: $m = oci_error($c2);
76: echo "New connection (take #2): Parse error: ";
77: echo $m["message"], "\n";
78:
79: $m = oci_error($c3);
80: echo "Persistent connection (take #2): Parse error: ";
81: echo $m["message"], "\n";
82:
83: // Now create a new error for a normal connection and check all again
84:
85: $s = @oci_new_collection($c1, "ABC");
86: $m = oci_error($c1);
87: echo "Normal connection: New Collection error: ";
88: echo $m["message"], "\n";
89:
90: $m = oci_error($c2);
91: echo "New connection (take #3): Parse error: ";
92: echo $m["message"], "\n";
93:
94: $m = oci_error($c3);
95: echo "Persistent connection (take #3): Parse error: ";
96: echo $m["message"], "\n";
97:
98: echo "Done\n";
99:
100: ?>
101: --EXPECTF--
102: Normal connection: Parse error
103: array(4) {
104: ["code"]=>
105: int(1756)
106: ["message"]=>
107: string(48) "ORA-01756: %s"
108: ["offset"]=>
109: int(0)
110: ["sqltext"]=>
111: string(0) ""
112: }
113: New connection: Parse error
114: array(4) {
115: ["code"]=>
116: int(1756)
117: ["message"]=>
118: string(48) "ORA-01756: %s"
119: ["offset"]=>
120: int(0)
121: ["sqltext"]=>
122: string(0) ""
123: }
124: Persistent connection: Parse error
125: array(4) {
126: ["code"]=>
127: int(1756)
128: ["message"]=>
129: string(48) "ORA-01756: %s"
130: ["offset"]=>
131: int(0)
132: ["sqltext"]=>
133: string(0) ""
134: }
135: No connection: error: bool(false)
136: Normal connection (take #2): Parse error: ORA-01756: %s
137: New connection (take #2): Parse error: ORA-01756: %s
138: Persistent connection (take #2): Parse error: ORA-01756: %s
139: Normal connection: New Collection error: OCI-22303: type ""."ABC" not found
140: New connection (take #3): Parse error: ORA-01756: %s
141: Persistent connection (take #3): Parse error: ORA-01756: %s
142: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>