Annotation of embedaddon/php/ext/mysql/tests/mysql_client_encoding.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: mysql_client_encoding()
        !             3: --SKIPIF--
        !             4: <?php
        !             5: require_once('skipif.inc');
        !             6: require_once('skipifconnectfailure.inc');
        !             7: ?>
        !             8: --FILE--
        !             9: <?php
        !            10: include_once "connect.inc";
        !            11: 
        !            12: $tmp    = NULL;
        !            13: $link   = NULL;
        !            14: 
        !            15: if (!$link = my_mysql_connect($host, $user, $passwd, $db, $port, $socket))
        !            16:        printf("[002] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
        !            17:                $host, $user, $db, $port, $socket);
        !            18: 
        !            19: $default_link_enc = mysql_client_encoding();
        !            20: $link_enc = mysql_client_encoding($link);
        !            21: 
        !            22: if ($default_link_enc !== $link_enc)
        !            23:        printf("[003] %s != %s, [%d] %s\n", $default_link_enc, $link_enc, mysql_errno($link), mysql_error($link));
        !            24: 
        !            25: if (!$res = mysql_query('SELECT version() AS server_version', $link))
        !            26:        printf("[004] [%d] %s\n", mysql_errno($link), mysql_error($link));
        !            27: $tmp = mysql_fetch_assoc($res);
        !            28: mysql_free_result($res);
        !            29: $version = explode('.', $tmp['server_version']);
        !            30: if (empty($version))
        !            31:        printf("[005] Cannot determine server version, need MySQL Server 4.1+ for the test!\n");
        !            32: 
        !            33: if ($version[0] <= 4 && $version[1] < 1)
        !            34:        printf("[006] Need MySQL Server 4.1+ for the test!\n");
        !            35: 
        !            36: if (!$res = mysql_query('SELECT @@character_set_connection AS charset, @@collation_connection AS collation', $link))
        !            37:        printf("[007] [%d] %s\n", mysql_errno($link), mysql_error($link));
        !            38: $tmp = mysql_fetch_assoc($res);
        !            39: mysql_free_result($res);
        !            40: if (!$tmp['charset'])
        !            41:        printf("[008] Cannot determine current character set and collation\n");
        !            42: 
        !            43: if ($link_enc !== $tmp['charset']) {
        !            44:        if ($link_enc === $tmp['collation']) {
        !            45:                printf("[009] Known bug, collation instead of chatset returned, http://bugs.mysql.com/bug.php?id=7923\n");
        !            46:        } else {
        !            47:                printf("[009] Check manually, watch out for unicode and others\n");
        !            48:                var_dump($link_enc);
        !            49:                var_dump($tmp);
        !            50:        }
        !            51: }
        !            52: 
        !            53: if ((version_compare(PHP_VERSION, '5.9.9', '>') == 1) && function_exists('is_unicode')) {
        !            54: // unicode mode
        !            55:        if (!is_unicode($default_link_enc) || !is_unicode($link_enc)) {
        !            56:                printf("[010] No unicode returned!\n");
        !            57:                var_dump($default_link_enc);
        !            58:                var_dump($link_enc);
        !            59:        }
        !            60: }
        !            61: 
        !            62: mysql_close($link);
        !            63: 
        !            64: if (false !== ($tmp = @mysql_client_encoding($link)))
        !            65:        printf("[012] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
        !            66: 
        !            67: print "done!";
        !            68: ?>
        !            69: --EXPECTF--
        !            70: done!

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