Annotation of embedaddon/php/ext/mysqli/tests/mysqli_query_unicode.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: mysqli_query() - unicode (cyrillic)
        !             3: --SKIPIF--
        !             4: <?php
        !             5: require_once('skipif.inc');
        !             6: require_once('skipifemb.inc');
        !             7: require_once('skipifconnectfailure.inc');
        !             8: require_once('connect.inc');
        !             9: require_once('table.inc');
        !            10: if (!$res = mysqli_query($link, "SHOW CHARACTER SET LIKE 'utf8'"))
        !            11:        die("skip UTF8 chatset seems not available");
        !            12: mysqli_free_result($res);
        !            13: mysqli_close($link);
        !            14: ?>
        !            15: --FILE--
        !            16: <?php
        !            17:        include_once("connect.inc");
        !            18: 
        !            19:        $tmp    = NULL;
        !            20:        $link   = NULL;
        !            21: 
        !            22:        if (!is_null($tmp = @mysqli_query()))
        !            23:                printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
        !            24: 
        !            25:        if (!is_null($tmp = @mysqli_query($link)))
        !            26:                printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
        !            27: 
        !            28:        require_once('table.inc');
        !            29: 
        !            30:        if (TRUE !== ($tmp = @mysqli_query($link, "set names utf8")))
        !            31:                printf("[002.5] Expecting TRUE, got %s/%s\n", gettype($tmp), $tmp);
        !            32: 
        !            33:        if (NULL !== ($tmp = @mysqli_query($link, "SELECT 1 AS колона", MYSQLI_USE_RESULT, "foo")))
        !            34:                printf("[003] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
        !            35: 
        !            36:        if (false !== ($tmp = mysqli_query($link, 'това не е ескюел')))
        !            37:                printf("[004] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
        !            38: 
        !            39:        if (false !== ($tmp = mysqli_query($link, "SELECT 'това е ескюел, но със обратна наклонена и g'\g")))
        !            40:                printf("[005] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
        !            41: 
        !            42:        if ((0 === mysqli_errno($link)) || ('' == mysqli_error($link)))
        !            43:                printf("[006] mysqli_errno()/mysqli_error should return some error\n");
        !            44: 
        !            45:        if (!$res = mysqli_query($link, "SELECT 'това ескюел, но с точка и запетая' AS правилен ; "))
        !            46:                printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
        !            47: 
        !            48:        var_dump(mysqli_fetch_assoc($res));
        !            49:        mysqli_free_result($res);
        !            50: 
        !            51:        if (false !== ($res = mysqli_query($link, "SELECT 'това ескюел, но с точка и запетая' AS правилен ; SHOW VARIABLES")))
        !            52:                printf("[008] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
        !            53: 
        !            54:        if (mysqli_get_server_version($link) > 50000) {
        !            55:                // let's try to play with stored procedures
        !            56:                mysqli_query($link, 'DROP PROCEDURE IF EXISTS процедурка');
        !            57:                if (mysqli_query($link, 'CREATE PROCEDURE процедурка(OUT версия VARCHAR(25)) BEGIN SELECT VERSION() INTO версия; END;')) {
        !            58:                        $res = mysqli_query($link, 'CALL процедурка(@version)');
        !            59:                        $res = mysqli_query($link, 'SELECT @version AS п_версия');
        !            60: 
        !            61:                        $tmp = mysqli_fetch_assoc($res);
        !            62:                        if (!is_array($tmp) || empty($tmp) || !isset($tmp['п_версия']) || ('' == $tmp['п_версия'])) {
        !            63:                                printf("[008a] Expecting array [%d] %s\n", mysqli_errno($link), mysqli_error($link));
        !            64:                                var_dump($tmp);
        !            65:                        }
        !            66: 
        !            67:                        mysqli_free_result($res);
        !            68:                } else {
        !            69:                        printf("[009] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
        !            70:                }
        !            71: 
        !            72:                mysqli_query($link, 'DROP FUNCTION IF EXISTS функцийка');
        !            73:                if (mysqli_query($link, 'CREATE FUNCTION функцийка( параметър_версия VARCHAR(25)) RETURNS VARCHAR(25) DETERMINISTIC RETURN параметър_версия;')) {
        !            74:                        $res = mysqli_query($link, 'SELECT функцийка(VERSION()) AS ф_версия');
        !            75: 
        !            76:                        $tmp = mysqli_fetch_assoc($res);
        !            77:                        if (!is_array($tmp) || empty($tmp) || !isset($tmp['ф_версия']) || ('' == $tmp['ф_версия'])) {
        !            78:                                printf("[009a] Expecting array [%d] %s\n", mysqli_errno($link), mysqli_error($link));
        !            79:                                var_dump($tmp);
        !            80:                        }
        !            81: 
        !            82:                        mysqli_free_result($res);
        !            83:                } else {
        !            84:                        printf("[010] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
        !            85:                }
        !            86:        }
        !            87: 
        !            88:        /*
        !            89:        Trying to test what Ramil suggests in http://bugs.mysql.com/bug.php?id=29576
        !            90:        However, this won't work, because we're lacking MYSQLI_SET_CHARSET_NAME.
        !            91:        if ((version_compare(PHP_VERSION, '5.9.9', '>') == 1)) {
        !            92:                if (mysqli_get_server_version() > 50002) {
        !            93:                        @mysqli_query($link, "DROP USER IF EXISTS 'тест'@'%'");
        !            94:                        if (TRUE !== mysqli_query($link, "CREATE USER 'тест'@'%'")) {
        !            95:                                var_dump(mysqli_error($link);
        !            96:                        }
        !            97:                }
        !            98:                if (TRUE !== mysqli_query($link, "GRANT SELECT ON $db.* TO 'тест'@'%' IDENTIFIED BY 'парола'")) {
        !            99:                        var_dump(mysqli_error($link);
        !           100:                } else {
        !           101:                        $link2 = mysqli_init();
        !           102:                        if (!(mysqli_real_connect($link2, $host, "тест", 'парола', $db, $port, $socket))) {
        !           103:                                printf("[011] Cannot connect to the server using host=%s, user=%s, passwd=парола, dbname=%s, port=%s, socket=%s, [%d] %s\n",
        !           104:                                        $host, "тест", $db, $port, $socket,
        !           105:                                        mysqli_connect_errno(), mysqli_connect_error());
        !           106:                        }
        !           107:                        mysqli_close($link2);
        !           108:                        if (mysqli_get_server_version() > 50002) {
        !           109:                                if (!mysqli_query($link, "DROP USER 'тест'@'%'"))
        !           110:                                        printf("[013] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
        !           111:                                } else {
        !           112:                                        printf("[015] Cannot create user or grant privileges, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
        !           113:                                }
        !           114:                        }
        !           115:                }
        !           116:        }
        !           117:        */
        !           118: 
        !           119:        mysqli_close($link);
        !           120: 
        !           121:        if (NULL !== ($tmp = mysqli_query($link, "SELECT id FROM test")))
        !           122:                printf("[014] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
        !           123: 
        !           124:        print "done!";
        !           125: ?>
        !           126: --EXPECTF--
        !           127: array(1) {
        !           128:   [%u|b%"правилен"]=>
        !           129:   %unicode|string%(%d) "това ескюел, но с точка и запетая"
        !           130: }
        !           131: 
        !           132: Warning: mysqli_query(): Couldn't fetch mysqli in %s on line %d
        !           133: done!

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