Annotation of embedaddon/php/ext/mysqli/tests/mysqli_next_result.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: mysqli_next_result()
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:
19: $tmp = NULL;
20: $link = NULL;
21:
22: if (!is_null($tmp = @mysqli_next_result()))
23: printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
24:
25: if (!is_null($tmp = @mysqli_next_result($link)))
26: printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
27:
28: require('table.inc');
29:
30: if ($strict_on)
31: ob_start();
32:
33: if (false !== ($tmp = mysqli_next_result($link)))
34: printf("[003] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
35:
36: if ($strict_on) {
37: $tmp = ob_get_contents();
38: ob_end_clean();
39: if (!preg_match('@Strict Standards: mysqli_next_result\(\): There is no next result set@ismU', $tmp)) {
40: printf("[003a] Strict Standards warning missing\n");
41: } else {
42: $tmp = trim(preg_replace('@Strict Standards: mysqli_next_result\(\).*on line \d+@ism', '', $tmp));
43: }
44: print trim($tmp) . "\n";
45: ob_start();
46: }
47:
48: $res = mysqli_query($link, "SELECT 1 AS res");
49: if (false !== ($tmp = mysqli_next_result($link)))
50: printf("[004] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
51:
52: if ($strict_on) {
53: $tmp = ob_get_contents();
54: ob_end_clean();
55: if (!preg_match('@Strict Standards: mysqli_next_result\(\): There is no next result set@ismU', $tmp)) {
56: printf("[004a] Strict Standards warning missing\n");
57: } else {
58: $tmp = trim(preg_replace('@Strict Standards: mysqli_next_result\(\).*on line \d+@ism', '', $tmp));
59: }
60: print trim($tmp) . "\n";
61: }
62:
63: mysqli_free_result($res);
64:
65: function func_test_mysqli_next_result($link, $query, $offset, $num_results, $strict_on) {
66:
67: if (!mysqli_multi_query($link, $query))
68: printf("[%03d] [%d] %s\n", $offset, mysqli_errno($link), mysqli_error($link));
69:
70: $i = 0;
71: if ($strict_on)
72: ob_start();
73:
74: do {
75: if ($res = mysqli_store_result($link)) {
76: mysqli_free_result($res);
77: $i++;
78: }
79: } while (true === mysqli_next_result($link));
80:
81: if ($strict_on) {
82: $tmp = ob_get_contents();
83: ob_end_clean();
84: if (!preg_match('@Strict Standards: mysqli_next_result\(\): There is no next result set@ismU', $tmp)) {
85: printf("[%03d] Strict Standards warning missing\n", $offset + 1);
86: } else {
87: $tmp = trim(preg_replace('@Strict Standards: mysqli_next_result\(\).*on line \d+@ism', '', $tmp));
88: }
89: print trim($tmp) . "\n";
90: }
91:
92: if ($i !== $num_results) {
93: printf("[%03d] Expecting %d result(s), got %d result(s)\n", $offset + 2, $num_results, $i);
94: }
95:
96: if (mysqli_more_results($link))
97: printf("[%03d] mysqli_more_results() indicates more results than expected\n", $offset + 3);
98:
99: if (!($res = mysqli_query($link, "SELECT 1 AS b"))) {
100: printf("[%03d] [%d] %s\n", $offset + 4, mysqli_errno($link), mysqli_error($link));
101: } else {
102: mysqli_free_result($res);
103: }
104:
105: }
106:
107: func_test_mysqli_next_result($link, "SELECT 1 AS a; SELECT 1 AS a, 2 AS b; SELECT id FROM test ORDER BY id LIMIT 3", 5, 3, $strict_on);
108: func_test_mysqli_next_result($link, "SELECT 1 AS a; INSERT INTO test(id, label) VALUES (100, 'y'); SELECT 1 AS a, 2 AS b", 8, 2, $strict_on);
109: func_test_mysqli_next_result($link, "DELETE FROM test WHERE id >= 100; SELECT 1 AS a; ", 11, 1, $strict_on);
110:
111: mysqli_close($link);
112:
113: var_dump(mysqli_next_result($link));
114:
115: print "done!";
116: ?>
117: --CLEAN--
118: <?php
119: require_once("clean_table.inc");
120: ?>
121: --EXPECTF--
122: Warning: mysqli_next_result(): Couldn't fetch mysqli in %s on line %d
123: NULL
124: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>