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