Annotation of embedaddon/php/ext/mysqli/tests/mysqli_query.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: mysqli_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:        $tmp    = NULL;
                     14:        $link   = NULL;
                     15: 
                     16:        if (!is_null($tmp = @mysqli_query()))
                     17:                printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
                     18: 
                     19:        if (!is_null($tmp = @mysqli_query($link)))
                     20:                printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
                     21: 
                     22:        require('table.inc');
                     23: 
                     24:        if (false !== ($tmp = @mysqli_query($link, '')))
                     25:                printf("[002a] Expecting boolean/false got %s/%s\n", gettype($tmp), $tmp);
                     26: 
                     27:        if (NULL !== ($tmp = @mysqli_query($link, "SELECT 1 AS a", MYSQLI_USE_RESULT, "foo")))
                     28:                printf("[003] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
                     29: 
                     30:        if (false !== ($tmp = mysqli_query($link, 'THIS IS NOT SQL')))
                     31:                printf("[004] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
                     32: 
                     33:        if (false !== ($tmp = mysqli_query($link, "SELECT 'this is sql but with backslash g'\g")))
                     34:                printf("[005] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
                     35: 
                     36:        if ((0 === mysqli_errno($link)) || ('' == mysqli_error($link)))
                     37:                printf("[006] mysqli_errno()/mysqli_error should return some error\n");
                     38: 
                     39:        if (!$res = mysqli_query($link, "SELECT 'this is sql but with semicolon' AS valid ; "))
                     40:                printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                     41: 
                     42:        var_dump(mysqli_fetch_assoc($res));
                     43:        mysqli_free_result($res);
                     44: 
                     45:        if (!$res = mysqli_query($link, "SELECT 'a' AS ''"))
                     46:                printf("[007a] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                     47: 
                     48:        var_dump($tmp = mysqli_fetch_assoc($res));
                     49:        var_dump($tmp[""]);
                     50:        mysqli_free_result($res);
                     51: 
                     52:        if (false !== ($res = mysqli_query($link, 'SELECT "this is sql but with semicolon" AS valid ; SHOW VARIABLES')))
                     53:                printf("[008] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                     54: 
                     55:        if (mysqli_get_server_version($link) > 50000) {
                     56:                // let's try to play with stored procedures
                     57:                mysqli_query($link, 'DROP PROCEDURE IF EXISTS p');
                     58:                if (mysqli_query($link, 'CREATE PROCEDURE p(OUT ver_param VARCHAR(25)) BEGIN SELECT VERSION() INTO ver_param; END;')) {
                     59:                        $res = mysqli_query($link, 'CALL p(@version)');
                     60:                        $res = mysqli_query($link, 'SELECT @version AS p_version');
                     61: 
                     62:                        $tmp = mysqli_fetch_assoc($res);
                     63:                        if (!is_array($tmp) || empty($tmp) || !isset($tmp['p_version']) || ('' == $tmp['p_version'])) {
                     64:                                printf("[008a] Expecting array [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                     65:                                var_dump($tmp);
                     66:                        }
                     67: 
                     68:                        mysqli_free_result($res);
                     69:                } else {
                     70:                        printf("[009] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                     71:                }
                     72: 
                     73:                mysqli_query($link, 'DROP FUNCTION IF EXISTS f');
                     74:                if (mysqli_query($link, 'CREATE FUNCTION f( ver_param VARCHAR(25)) RETURNS VARCHAR(25) DETERMINISTIC RETURN ver_param;')) {
                     75:                        $res = mysqli_query($link, 'SELECT f(VERSION()) AS f_version');
                     76: 
                     77:                        $tmp = mysqli_fetch_assoc($res);
                     78:                        if (!is_array($tmp) || empty($tmp) || !isset($tmp['f_version']) || ('' == $tmp['f_version'])) {
                     79:                                printf("[009a] Expecting array [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                     80:                                var_dump($tmp);
                     81:                        }
                     82: 
                     83:                        mysqli_free_result($res);
                     84:                } else {
                     85:                        printf("[010] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                     86:                }
                     87:        }
                     88: 
                     89:        if (!is_object($res = mysqli_query($link, "SELECT id FROM test ORDER BY id", MYSQLI_USE_RESULT)))
                     90:                printf("[011] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                     91:        mysqli_free_result($res);
                     92: 
                     93:        if (!is_object($res = mysqli_query($link, "SELECT id FROM test ORDER BY id", MYSQLI_STORE_RESULT)))
                     94:                printf("[012] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                     95:        mysqli_free_result($res);
                     96: 
                     97:        $valid = array(MYSQLI_USE_RESULT, MYSQLI_STORE_RESULT);
                     98:        do {
                     99:                $mode = mt_rand(-1000, 1000);
                    100:        } while (in_array($mode, $valid));
                    101: 
                    102:        if (false !== ($res = @mysqli_query($link, "SELECT id FROM test ORDER BY id", $mode)))
                    103:                printf("[013] Invalid mode should return false got %s/%s, [%d] %s\n",
                    104:                        gettype($res), (is_object($res)) ? 'object' : $res,
                    105:                        mysqli_errno($link), mysqli_error($link));
                    106: 
                    107: 
                    108:        mysqli_close($link);
                    109: 
                    110:        if (NULL !== ($tmp = mysqli_query($link, "SELECT id FROM test")))
                    111:                printf("[011] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
                    112: 
                    113:        print "done!";
                    114: ?>
                    115: --CLEAN--
                    116: <?php
                    117: require_once("connect.inc");
                    118: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
                    119:    printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
                    120: 
                    121: if (!mysqli_query($link, "DROP TABLE IF EXISTS test"))
                    122:        printf("[c002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                    123: 
                    124: @mysqli_query($link, "DROP FUNCTION IF EXISTS f");
                    125: @mysqli_query($link, 'DROP PROCEDURE IF EXISTS p');
                    126: 
                    127: mysqli_close($link);
                    128: ?>
                    129: --EXPECTF--
                    130: array(1) {
                    131:   [%u|b%"valid"]=>
                    132:   %unicode|string%(30) "this is sql but with semicolon"
                    133: }
                    134: array(1) {
                    135:   [%u|b%""]=>
                    136:   %unicode|string%(1) "a"
                    137: }
                    138: %unicode|string%(1) "a"
                    139: 
                    140: Warning: mysqli_query(): Couldn't fetch mysqli in %s on line %d
                    141: done!

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>