1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
|
--TEST--
mysqli_fetch_assoc() - utf8
--EXTENSIONS--
mysqli
--SKIPIF--
<?php
require_once 'connect.inc';
if (!$link = @mysqli_connect($host, $user, $passwd, $db, $port, $socket))
die(sprintf("skip Can't connect to MySQL Server - [%d] %s", mysqli_connect_errno(), mysqli_connect_error()));
if (!$res = mysqli_query($link, "SHOW CHARACTER SET LIKE 'UTF8'"))
die("skip Cannot run SHOW CHARACTER SET to check charsets");
if (!$tmp = mysqli_fetch_assoc($res))
die("skip Looks like UTF8 is not available on the server");
if (strtolower($tmp['Charset']) !== 'utf8')
die("skip Not sure if UTF8 is available, canceling the test");
mysqli_free_result($res);
if (!$res = mysqli_query($link, "SHOW CHARACTER SET LIKE 'UCS2'"))
die("skip Cannot run SHOW CHARACTER SET to check charsets");
if (!$tmp = mysqli_fetch_assoc($res))
die("skip Looks like UCS2 is not available on the server");
if (strtolower($tmp['Charset']) !== 'ucs2')
die("skip Not sure if UCS2 is available, canceling the test");
mysqli_free_result($res);
mysqli_close($link);
?>
--FILE--
<?php
require_once 'connect.inc';
if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
printf("Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
$host, $user, $db, $port, $socket);
exit(1);
}
/* some cyrillic (utf8) comes here */
if (false === mysqli_query($link, "SET NAMES UTF8")) {
printf("[001] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
if (!$res = mysqli_query($link, "SELECT 1 AS 'Андрей Христов', 2 AS 'Улф Вендел', 3 AS 'Георг Рихтер'")) {
printf("[002] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
print "[003]\n";
var_dump(mysqli_fetch_assoc($res));
mysqli_free_result($res);
if (false === mysqli_query($link, "CREATE TABLE автори_на_mysqlnd (id integer not null auto_increment primary key, име varchar(20) character set ucs2, фамилия varchar(20) character set utf8)")) {
printf("[004] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
if (false === mysqli_query($link, "INSERT INTO автори_на_mysqlnd (име, фамилия) VALUES ('Андрей', 'Христов'), ('Георг', 'Рихтер'), ('Улф','Вендел')")) {
printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
if (false === mysqli_query($link, "INSERT INTO автори_на_mysqlnd (име, фамилия) VALUES ('Andrey', 'Hristov'), ('Georg', 'Richter'), ('Ulf','Wendel')")) {
printf("[006] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
if (false === mysqli_query($link, "INSERT INTO автори_на_mysqlnd (име, фамилия) VALUES ('安德烈', 'Hristov'), ('格奥尔', 'Richter'), ('乌尔夫','Wendel')")) {
printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
if (!$res = mysqli_query($link, "SELECT id, име, фамилия FROM автори_на_mysqlnd ORDER BY фамилия, име")) {
printf("[008] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
print "[009]\n";
while ($row = mysqli_fetch_assoc($res)) {
var_dump($row);
}
mysqli_free_result($res);
if (false === mysqli_query($link, "DROP TABLE автори_на_mysqlnd")) {
printf("[010] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
mysqli_close($link);
print "done!";
?>
--EXPECTF--
[003]
array(3) {
["Андрей Христов"]=>
string(%r[1|3]%r) "1"
["Улф Вендел"]=>
string(1) "2"
["Георг Рихтер"]=>
string(1) "3"
}
[009]
array(3) {
["id"]=>
string(1) "4"
["име"]=>
string(6) "Andrey"
["фамилия"]=>
string(7) "Hristov"
}
array(3) {
["id"]=>
string(1) "7"
["име"]=>
string(9) "安德烈"
["фамилия"]=>
string(7) "Hristov"
}
array(3) {
["id"]=>
string(1) "5"
["име"]=>
string(5) "Georg"
["фамилия"]=>
string(7) "Richter"
}
array(3) {
["id"]=>
string(1) "8"
["име"]=>
string(9) "格奥尔"
["фамилия"]=>
string(7) "Richter"
}
array(3) {
["id"]=>
string(1) "6"
["име"]=>
string(3) "Ulf"
["фамилия"]=>
string(6) "Wendel"
}
array(3) {
["id"]=>
string(1) "9"
["име"]=>
string(9) "乌尔夫"
["фамилия"]=>
string(6) "Wendel"
}
array(3) {
["id"]=>
string(1) "3"
["име"]=>
string(6) "Улф"
["фамилия"]=>
string(12) "Вендел"
}
array(3) {
["id"]=>
string(1) "2"
["име"]=>
string(10) "Георг"
["фамилия"]=>
string(12) "Рихтер"
}
array(3) {
["id"]=>
string(1) "1"
["име"]=>
string(12) "Андрей"
["фамилия"]=>
string(14) "Христов"
}
done!
|