Annotation of embedaddon/php/ext/mysqli/tests/mysqli_multi_query.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: mysqli_multi_query()
3: --SKIPIF--
4: <?php
5: require_once('skipif.inc');
6: require_once('skipifemb.inc');
7: require_once('skipifconnectfailure.inc');
8: ?>
9: --FILE--
10: <?php
11: require_once("connect.inc");
12:
13: $strict_on = false;
14: if (defined('E_STRICT')) {
15: error_reporting(((int)ini_get('error_reporting')) | E_STRICT );
16: $strict_on = true;
17: }
18: $tmp = NULL;
19: $link = NULL;
20:
21: if (!is_null($tmp = @mysqli_multi_query()))
22: printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
23:
24: if (!is_null($tmp = @mysqli_multi_query($link)))
25: printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
26:
27: require('table.inc');
28:
29: if (false !== ($tmp = mysqli_multi_query($link, "")))
30: printf("[003] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
31:
32: if (!mysqli_multi_query($link, "SELECT 1 AS a; SELECT 1 AS a, 2 AS b; SELECT id FROM test ORDER BY id LIMIT 3"))
33: printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
34:
35: if ($strict_on)
36: ob_start();
37:
38: $i = 0;
39: do {
40: $res = mysqli_store_result($link);
41: while ($row = mysqli_fetch_array($res))
42: ;
43: mysqli_free_result($res);
44: $i++;
45: } while (mysqli_next_result($link));
46:
47: if ($strict_on) {
48: $tmp = ob_get_contents();
49: ob_end_clean();
50: if (!preg_match('@Strict Standards: mysqli_next_result\(\): There is no next result set@ismU', $tmp)) {
51: printf("[005a] Strict Standards warning missing\n");
52: } else {
53: $tmp = trim(preg_replace('@Strict Standards: mysqli_next_result\(\).*on line \d+@ism', '', $tmp));
54: }
55: print trim($tmp) . "\n";
56: }
57:
58: printf("[006] %d\n", $i);
59:
60: if (!mysqli_multi_query($link, "ALTER TABLE test MODIFY id INT AUTO_INCREMENT; INSERT INTO test(label) VALUES ('a'); SELECT id, label FROM test ORDER BY id"))
61: printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
62:
63: $i = 0;
64: while (mysqli_next_result($link) && ($res = mysqli_store_result($link))) {
65:
66: while ($row = mysqli_fetch_array($res))
67: ;
68: mysqli_free_result($res);
69: printf("%d/%d\n", $i, mysqli_insert_id($link));
70: $i++;
71: }
72: printf("[008] %d\n", $i);
73:
74: if (!mysqli_multi_query($link, "SELECT id, label FROM test"))
75: printf("[009] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
76:
77: if ($strict_on)
78: ob_start();
79: $i = 0;
80: while (mysqli_next_result($link) && ($res = mysqli_store_result($link))) {
81: while ($row = mysqli_fetch_array($res))
82: $i++;
83: mysqli_free_result($res);
84: }
85: if ($strict_on) {
86: $tmp = ob_get_contents();
87: ob_end_clean();
88: if (!preg_match('@Strict Standards: mysqli_next_result\(\): There is no next result set@ismU', $tmp)) {
89: printf("[009a] Strict Standards warning missing\n");
90: } else {
91: $tmp = trim(preg_replace('@Strict Standards: mysqli_next_result\(\).*on line \d+@ism', '', $tmp));
92: }
93: print trim($tmp) . "\n";
94: }
95: printf("[010] %d\n", $i);
96:
97: if (!mysqli_multi_query($link, "SELECT 1 AS num, 'a' AS somechar; SELECT 2 AS num, 'a' AS somechar; SELECT 3 AS num, 'a' AS somechar"))
98: printf("[011] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
99:
100: $res_num = 1;
101: do {
102: if (!$res = mysqli_store_result($link)) {
103: printf("[012 - %d] [%d] %s\n", $res_num, mysqli_errno($link), mysqli_error($link));
104: continue;
105: }
106:
107: $num_rows = 0;
108: while ($row = mysqli_fetch_array($res)) {
109:
110: $num_rows++;
111: if ($row['num'] != $res_num)
112: printf("[013 - %d] Expecting %s got %s\n", $res_num, $res_num, $row['num']);
113: if ($row['somechar'] != "a")
114: printf("[014 - %d] Expecting a got %s\n", $res_num, $row['somechar']);
115:
116: if (1 == $num_rows) {
117: /* simple metadata check */
118: if (!($lengths = mysqli_fetch_lengths($res)))
119: printf("[015 - %d] [%d] %s\n", $res_num, mysqli_errno($link), mysqli_error($link));
120:
121: if (count($lengths) != 2)
122: printf("[016 - %d] Expecting 2 column lengths got %d [%d] %s\n", $res_num, count($lengths));
123:
124: foreach ($lengths as $k => $length)
125: if ($length <= 0)
126: printf("[017 - %d] Strange column lengths for column %d, got %d expecting any > 0\n",
127: $res_num, $k, $length);
128: }
129: }
130:
131: if ($num_rows != 1)
132: printf("[018 - %d] Expecting 1 row, got %d rows\n", $num_rows);
133:
134: $res_num++;
135:
136: mysqli_free_result($res);
137:
138: } while (@mysqli_next_result($link));
139:
140: if ($res_num != 4)
141: printf("[015] Expecting 3 result sets got %d result set[s]\n", $res_num);
142:
143: mysqli_close($link);
144:
145: var_dump(mysqli_multi_query($link, "SELECT id, label FROM test"));
146:
147: print "done!";
148: ?>
149: --CLEAN--
150: <?php
151: require_once("clean_table.inc");
152: ?>
153: --EXPECTF--
154: [006] 3
155: [008] 0
156: [009] [2014] Commands out of sync; you can't run this command now
157:
158: [010] 7
159:
160: Warning: mysqli_multi_query(): Couldn't fetch mysqli in %s on line %d
161: NULL
162: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>