2
2
odbc_exec(): Getting accurate unicode data from query
3
3
--EXTENSIONS--
4
4
odbc
5
+ mbstring
5
6
--SKIPIF--
6
- <?php include 'skipif.inc ' ; ?>
7
7
<?php
8
- if ("unixODBC " != ODBC_TYPE ) {
9
- die ("skip ODBC_TYPE != unixODBC " );
8
+ include 'skipif.inc ' ;
9
+ if ("unixODBC " != ODBC_TYPE ) {
10
+ die ("skip ODBC_TYPE != unixODBC " );
11
+ }
12
+
13
+ $ conn = odbc_connect ($ dsn , $ user , $ pass );
14
+ $ result = @odbc_exec ($ conn , "SELECT @@Version " );
15
+ if ($ result ) {
16
+ $ array = odbc_fetch_array ($ result );
17
+ $ info = (string ) reset ($ array );
18
+ if (str_contains ($ info , "Microsoft SQL Server " )) {
19
+ echo "skip Doesn't work with MS SQL " ;
10
20
}
21
+ }
11
22
?>
12
23
--FILE--
13
24
<?php
@@ -23,14 +34,12 @@ ini_set("odbc.defaultlrl", 4); // Set artificially low
23
34
24
35
$ conn = odbc_connect ($ dsn , $ user , $ pass );
25
36
26
- odbc_exec ($ conn , 'CREATE DATABASE odbcTEST ENCODING= \'EUC_JP \'' );
37
+ odbc_exec ($ conn , 'CREATE DATABASE bug60616Test ENCODING= \'EUC_JP \'' );
38
+ odbc_exec ($ conn , 'USE bug60616Test ' );
39
+ odbc_exec ($ conn , 'CREATE TABLE bug60616 (ID INT, CHAR_COL CHAR(200), VARCHAR_COL VARCHAR(200), TEXT_COL TEXT) ' );
40
+ odbc_exec ($ conn , "INSERT INTO bug60616(ID, CHAR_COL, VARCHAR_COL, TEXT_COL) VALUES (1, ' $ euc_jp', ' $ euc_jp', ' $ euc_jp'), (2, ' $ ascii', ' $ ascii', ' $ ascii') " );
27
41
28
- odbc_exec ($ conn , 'CREATE TABLE FOO (ID INT, CHAR_COL CHAR(200), VARCHAR_COL VARCHAR(200), TEXT_COL TEXT) ' );
29
-
30
- odbc_exec ($ conn , "INSERT INTO FOO(ID, CHAR_COL, VARCHAR_COL, TEXT_COL) VALUES (1, ' $ euc_jp', ' $ euc_jp', ' $ euc_jp') " );
31
- odbc_exec ($ conn , "INSERT INTO FOO(ID, CHAR_COL, VARCHAR_COL, TEXT_COL) VALUES (2, ' $ ascii', ' $ ascii', ' $ ascii') " );
32
-
33
- $ res = odbc_exec ($ conn , 'SELECT * FROM FOO ORDER BY ID ASC ' );
42
+ $ res = odbc_exec ($ conn , 'SELECT * FROM bug60616 ORDER BY ID ASC ' );
34
43
35
44
while (odbc_fetch_row ($ res )) {
36
45
$ char_col = odbc_result ($ res , "CHAR_COL " );
@@ -61,16 +70,17 @@ while(odbc_fetch_row($res)) {
61
70
}
62
71
63
72
?>
64
- --EXPECT--
65
- EUC-JP matched
66
- ASCII matched
67
73
--CLEAN--
68
74
<?php
69
75
include 'config.inc ' ;
70
76
71
77
$ conn = odbc_connect ($ dsn , $ user , $ pass );
72
78
73
- odbc_exec ($ conn , 'DROP TABLE FOO ' );
74
- odbc_exec ($ conn , 'DROP DATABASE odbcTEST ' );
75
-
79
+ odbc_exec ($ conn , 'USE bug60616Test ' );
80
+ odbc_exec ($ conn , 'DROP TABLE bug60616 ' );
81
+ odbc_exec ( $ conn , ' DROP DATABASE bug60616Test ' );
76
82
?>
83
+ --EXPECT--
84
+ EUC-JP matched
85
+ ASCII matched
86
+
0 commit comments