Annotation of embedaddon/php/ext/mysqli/tests/mysqli_more_results.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: mysqli_more_results()
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_more_results()))
23: printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
24:
25: if (!is_null($tmp = @mysqli_more_results($link)))
26: printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
27:
28: require('table.inc');
29:
30: print "[004]\n";
31: var_dump(mysqli_more_results($link));
32:
33: 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"))
34: printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
35: print "[006]\n";
36: $i = 1;
37:
38: if ($strict_on)
39: ob_start();
40:
41: if (mysqli_get_server_version($link) > 41000 && !($ret = mysqli_more_results($link)))
42: printf("[007] Expecting boolean/true, got %s/%s\n", gettype($ret), $ret);
43: do {
44: $res = mysqli_store_result($link);
45: mysqli_free_result($res);
46: if (mysqli_more_results($link))
47: printf("%d\n", $i++);
48: } while (mysqli_next_result($link));
49:
50: if ($strict_on) {
51: $tmp = ob_get_contents();
52: ob_end_clean();
53: if (!preg_match('@Strict Standards: mysqli_next_result\(\): There is no next result set@ismU', $tmp)) {
54: printf("[008] Strict Standards warning missing\n");
55: } else {
56: $tmp = trim(preg_replace('@Strict Standards: mysqli_next_result\(\).*on line \d+@ism', '', $tmp));
57: }
58: print trim($tmp) . "\n";
59: }
60:
61: 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"))
62: printf("[009] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
63: print "[010]\n";
64: $i = 1;
65: if (mysqli_get_server_version($link) > 41000 && !($ret = mysqli_more_results($link)))
66: printf("[011] Expecting boolean/true, got %s/%s\n", gettype($ret), $ret);
67:
68: if ($strict_on)
69: ob_start();
70: do {
71: $res = mysqli_use_result($link);
72: // NOTE: if you use mysqli_use_result() with mysqli_more_results() or any other info function,
73: // you must fetch all rows before you can loop to the next result set!
74: // See also the MySQL Reference Manual: mysql_use_result()
75: while ($row = mysqli_fetch_array($res))
76: ;
77: mysqli_free_result($res);
78: if (mysqli_more_results($link))
79: printf("%d\n", $i++);
80: } while (mysqli_next_result($link));
81:
82: if ($strict_on) {
83: $tmp = ob_get_contents();
84: ob_end_clean();
85: if (!preg_match('@Strict Standards: mysqli_next_result\(\): There is no next result set@ismU', $tmp)) {
86: printf("[008] Strict Standards warning missing\n");
87: } else {
88: $tmp = trim(preg_replace('@Strict Standards: mysqli_next_result\(\).*on line \d+@ism', '', $tmp));
89: }
90: print trim($tmp) . "\n";
91: }
92: mysqli_close($link);
93:
94: var_dump(mysqli_more_results($link));
95:
96: print "done!";
97: ?>
98: --CLEAN--
99: <?php
100: require_once("clean_table.inc");
101: ?>
102: --EXPECTF--
103: [004]
104: bool(false)
105: [006]
106: 1
107: 2
108: [010]
109: 1
110: 2
111:
112: Warning: mysqli_more_results(): Couldn't fetch mysqli in %s on line %d
113: NULL
114: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>