Annotation of embedaddon/php/ext/mysqli/tests/mysqli_stmt_execute_stored_proc.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: mysqli_stmt_execute() - Stored Procedures
3: --SKIPIF--
4: <?php
5: require_once('skipif.inc');
6: require_once('skipifconnectfailure.inc');
7: require_once('connect.inc');
8: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
9: die(sprintf('skip Cannot connect to MySQL, [%d] %s.', mysqli_connect_errno(), mysqli_connect_error()));
10: }
11: if (mysqli_get_server_version($link) <= 50000) {
12: die(sprintf('skip Needs MySQL 5.0+, found version %d.', mysqli_get_server_version($link)));
13: }
14: ?>
15: --FILE--
16: <?php
17: require_once('connect.inc');
18: require_once('table.inc');
19:
20: if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'))
21: printf("[009] [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
22:
23: if (mysqli_real_query($link, 'CREATE PROCEDURE p(OUT ver_param VARCHAR(25)) BEGIN SELECT VERSION() INTO ver_param; END;')) {
24: /* no result set, one output parameter */
25: if (!$stmt = mysqli_prepare($link, 'CALL p(@version)'))
26: printf("[011] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
27:
28: if (!mysqli_stmt_execute($stmt))
29: printf("[012] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
30:
31: /* yes, I really want to call it twice! */
32: if (!mysqli_stmt_execute($stmt))
33: printf("[013] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
34:
35: if (!mysqli_stmt_close($stmt))
36: printf("[014] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
37:
38: if (!$stmt = mysqli_prepare($link, 'SELECT @version AS _version'))
39: printf("[015] Cannot prepare SELECT, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
40:
41: if (!mysqli_stmt_execute($stmt))
42: printf("[016] Cannot execute SELECT, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
43:
44: $version = 'unknown';
45: if (!mysqli_stmt_bind_result($stmt, $version) ||
46: !mysqli_stmt_fetch($stmt))
47: printf("[017] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
48:
49: if (($version == "unknown") || ($version == ""))
50: printf("[018] Results seem wrong, got %s, [%d] %s\n",
51: $version,
52: mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
53:
54: mysqli_stmt_free_result($stmt);
55: mysqli_stmt_close($stmt);
56:
57: } else {
58: printf("[010] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
59: }
60:
61:
62: if (function_exists('mysqli_stmt_get_result')) {
63:
64: if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'))
65: printf("[019] [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
66:
67: if (mysqli_real_query($link, 'CREATE PROCEDURE p(OUT ver_param VARCHAR(25)) BEGIN SELECT VERSION() INTO ver_param; END;')) {
68: // no result set, one output parameter
69: if (!$stmt = mysqli_prepare($link, 'CALL p(@version)'))
70: printf("[020] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
71:
72: if (!mysqli_stmt_execute($stmt))
73: printf("[021] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
74:
75: if (!mysqli_stmt_close($stmt))
76: printf("[022] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
77:
78: if (!$stmt = mysqli_prepare($link, 'SELECT @version AS _version'))
79: printf("[023] Cannot prepare SELECT, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
80:
81: if (!mysqli_stmt_execute($stmt))
82: printf("[024] Cannot execute SELECT, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
83:
84: if (!$res = mysqli_stmt_get_result($stmt))
85: printf("[025] Cannot get result set, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
86:
87: if ((!($row = mysqli_fetch_assoc($res))) || ($row['_version'] == ""))
88: printf("[026] Results seem wrong, got %s, [%d] %s\n",
89: $row['_version'],
90: mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
91:
92: mysqli_free_result($res);
93: mysqli_stmt_close($stmt);
94:
95: } else {
96: printf("[027] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
97: }
98:
99: }
100:
101: if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'))
102: printf("[028] [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
103:
104: if (mysqli_real_query($link, 'CREATE PROCEDURE p(IN ver_in VARCHAR(25), OUT ver_out VARCHAR(25)) BEGIN SELECT ver_in INTO ver_out; END;')) {
105: // no result set, one input parameter, output parameter
106: // yes, I really do not want to bind input values...
107: if (!$stmt = mysqli_prepare($link, "CALL p('myversion', @version)"))
108: printf("[029] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
109:
110: if (!mysqli_stmt_execute($stmt))
111: printf("[030] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
112:
113: if (!mysqli_stmt_close($stmt))
114: printf("[031] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
115:
116: if (!$stmt = mysqli_prepare($link, 'SELECT @version AS _version'))
117: printf("[032] Cannot prepare SELECT, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
118:
119: if (!mysqli_stmt_execute($stmt))
120: printf("[033] Cannot execute SELECT, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
121:
122: $version = 'unknown';
123: if (!mysqli_stmt_bind_result($stmt, $version) ||
124: !mysqli_stmt_fetch($stmt))
125: printf("[034] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
126:
127: if ($version != "myversion")
128: printf("[035] Results seem wrong, got %s, [%d] %s\n",
129: $version,
130: mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
131:
132: mysqli_stmt_free_result($stmt);
133: mysqli_stmt_close($stmt);
134:
135: } else {
136: printf("[036] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
137: }
138:
139: if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'))
140: printf("[037] [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
141:
142: if (mysqli_real_query($link, 'CREATE PROCEDURE p(IN ver_in VARCHAR(25), OUT ver_out VARCHAR(25)) BEGIN SELECT ver_in INTO ver_out; END;')) {
143: // no result set, one input parameter, output parameter
144: // yes, I really do not want to bind input values...
145: if (!$stmt = mysqli_prepare($link, 'CALL p(?, @version)'))
146: printf("[038] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
147:
148: $version = 'myversion';
149: if (!mysqli_stmt_bind_param($stmt, 's', $version))
150: printf("[039] Cannot bind input parameter, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
151:
152: if (!mysqli_stmt_execute($stmt))
153: printf("[040] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
154:
155: if (!mysqli_stmt_close($stmt))
156: printf("[041] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
157:
158: if (!$stmt = mysqli_prepare($link, 'SELECT @version AS _version'))
159: printf("[042] Cannot prepare SELECT, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
160:
161: if (!mysqli_stmt_execute($stmt))
162: printf("[043] Cannot execute SELECT, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
163:
164: $version = 'unknown';
165: if (!mysqli_stmt_bind_result($stmt, $version) ||
166: !mysqli_stmt_fetch($stmt))
167: printf("[044] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
168:
169: if ($version !== "myversion")
170: printf("[045] Results seem wrong, got %s, [%d] %s\n",
171: $version,
172: mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
173:
174: mysqli_stmt_free_result($stmt);
175: mysqli_stmt_close($stmt);
176:
177: } else {
178: printf("[046] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
179: }
180:
181: mysqli_close($link);
182: print "done!";
183: ?>
184: --CLEAN--
185: <?php
186: require_once("connect.inc");
187: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
188: printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
189:
190: if (!mysqli_query($link, "DROP TABLE IF EXISTS test_bind_fetch"))
191: printf("[c002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
192:
193: @mysqli_query($link, 'DROP PROCEDURE IF EXISTS p');
194:
195: mysqli_close($link);
196: ?>
197: --EXPECTF--
198: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>