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