Annotation of embedaddon/php/ext/mysqli/tests/mysqli_more_results.phpt, revision 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>