diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /ext/mysql/tests/mysql_client_encoding.phpt | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/mysql/tests/mysql_client_encoding.phpt')
-rw-r--r-- | ext/mysql/tests/mysql_client_encoding.phpt | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/ext/mysql/tests/mysql_client_encoding.phpt b/ext/mysql/tests/mysql_client_encoding.phpt new file mode 100644 index 0000000..8aa67a0 --- /dev/null +++ b/ext/mysql/tests/mysql_client_encoding.phpt @@ -0,0 +1,70 @@ +--TEST-- +mysql_client_encoding() +--SKIPIF-- +<?php +require_once('skipif.inc'); +require_once('skipifconnectfailure.inc'); +?> +--FILE-- +<?php +include_once "connect.inc"; + +$tmp = NULL; +$link = NULL; + +if (!$link = my_mysql_connect($host, $user, $passwd, $db, $port, $socket)) + printf("[002] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", + $host, $user, $db, $port, $socket); + +$default_link_enc = mysql_client_encoding(); +$link_enc = mysql_client_encoding($link); + +if ($default_link_enc !== $link_enc) + printf("[003] %s != %s, [%d] %s\n", $default_link_enc, $link_enc, mysql_errno($link), mysql_error($link)); + +if (!$res = mysql_query('SELECT version() AS server_version', $link)) + printf("[004] [%d] %s\n", mysql_errno($link), mysql_error($link)); +$tmp = mysql_fetch_assoc($res); +mysql_free_result($res); +$version = explode('.', $tmp['server_version']); +if (empty($version)) + printf("[005] Cannot determine server version, need MySQL Server 4.1+ for the test!\n"); + +if ($version[0] <= 4 && $version[1] < 1) + printf("[006] Need MySQL Server 4.1+ for the test!\n"); + +if (!$res = mysql_query('SELECT @@character_set_connection AS charset, @@collation_connection AS collation', $link)) + printf("[007] [%d] %s\n", mysql_errno($link), mysql_error($link)); +$tmp = mysql_fetch_assoc($res); +mysql_free_result($res); +if (!$tmp['charset']) + printf("[008] Cannot determine current character set and collation\n"); + +if ($link_enc !== $tmp['charset']) { + if ($link_enc === $tmp['collation']) { + printf("[009] Known bug, collation instead of chatset returned, http://bugs.mysql.com/bug.php?id=7923\n"); + } else { + printf("[009] Check manually, watch out for unicode and others\n"); + var_dump($link_enc); + var_dump($tmp); + } +} + +if ((version_compare(PHP_VERSION, '5.9.9', '>') == 1) && function_exists('is_unicode')) { +// unicode mode + if (!is_unicode($default_link_enc) || !is_unicode($link_enc)) { + printf("[010] No unicode returned!\n"); + var_dump($default_link_enc); + var_dump($link_enc); + } +} + +mysql_close($link); + +if (false !== ($tmp = @mysql_client_encoding($link))) + printf("[012] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp); + +print "done!"; +?> +--EXPECTF-- +done! |