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>