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

1.1       misho       1: --TEST--
                      2: set character set
                      3: --SKIPIF--
                      4: <?php
                      5: require_once('skipif.inc');
                      6: require_once('skipifconnectfailure.inc');
                      7: 
                      8: if (!function_exists('mysqli_set_charset')) {
                      9:        die('skip mysqli_set_charset() not available');
                     10: }
                     11: if (version_compare(PHP_VERSION, '5.9.9', '>') == 1) {
                     12:        die('skip set character set not functional with PHP 6 (fomerly PHP 6 && unicode.semantics=On)');
                     13: }
                     14: ?>
                     15: --FILE--
                     16: <?php
                     17:        require_once("connect.inc");
                     18: 
                     19:        if (!$mysql = new my_mysqli($host, $user, $passwd, $db, $port, $socket))
                     20:                printf("[001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
                     21: 
                     22:        if (!mysqli_query($mysql, "SET sql_mode=''"))
                     23:                printf("[002] Cannot set SQL-Mode, [%d] %s\n", mysqli_errno($mysql), mysqli_error($mysql));
                     24: 
                     25:        $esc_str = chr(0xbf) . chr(0x5c);
                     26:        $len = $charset = array();
                     27:        $tmp = null;
                     28: 
                     29:        if ($mysql->set_charset("latin1")) {
                     30:                /* 5C should be escaped */
                     31:                if (3 !== ($tmp = strlen($mysql->real_escape_string($esc_str))))
                     32:                        printf("[003] Expecting 3/int got %s/%s\n", gettype($tmp), $tmp);
                     33: 
                     34:                if ('latin1' !== ($tmp = $mysql->character_set_name()))
                     35:                        printf("[004] Expecting latin1/string got %s/%s\n", gettype($tmp), $tmp);
                     36:        }
                     37: 
                     38:        if ($res = $mysql->query("SHOW CHARACTER SET LIKE 'gbk'")) {
                     39:                $res->free_result();
                     40:                if ($mysql->set_charset("gbk")) {
                     41:                        /* nothing should be escaped, it's a valid gbk character */
                     42: 
                     43:                        if (2 !== ($tmp = strlen($mysql->real_escape_string($esc_str))))
                     44:                                        printf("[005] Expecting 2/int got %s/%s\n", gettype($tmp), $tmp);
                     45: 
                     46:                        if ('gbk' !== ($tmp = $mysql->character_set_name()))
                     47:                                        printf("[005] Expecting gbk/string got %s/%s\n", gettype($tmp), $tmp);;
                     48:                }
                     49:        }
                     50:        $mysql->close();
                     51: 
                     52:        print "done!";
                     53: ?>
                     54: --EXPECT--
                     55: done!

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