Annotation of embedaddon/php/ext/mysqli/tests/mysqli_stmt_get_result_metadata_fetch_field.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: mysqli_stmt_get_result() - meta data, field info
3: --SKIPIF--
4: <?php
5: require_once('skipif.inc');
6: require_once('skipifemb.inc');
7: require_once('skipifconnectfailure.inc');
8:
9: if (!function_exists('mysqli_stmt_get_result'))
10: die('skip mysqli_stmt_get_result not available');
11: ?>
12: --FILE--
13: <?php
14: require('table.inc');
15: $charsets = my_get_charsets($link);
16:
17: if (!($stmt = mysqli_stmt_init($link)) ||
18: !mysqli_stmt_prepare($stmt, "SELECT id, label, id + 1 as _id, concat(label, '_') ___label FROM test ORDER BY id ASC LIMIT 3") ||
19: !mysqli_stmt_execute($stmt))
20: printf("[001] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
21:
22: if (!is_object($res = mysqli_stmt_get_result($stmt)) || 'mysqli_result' != get_class($res)) {
23: printf("[002] Expecting object/mysqli_result got %s/%s, [%d] %s\n",
24: gettype($res), $res, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
25: }
26:
27: if (!is_object($res_meta = mysqli_stmt_result_metadata($stmt)) ||
28: 'mysqli_result' != get_class($res_meta)) {
29: printf("[003] Expecting object/mysqli_result got %s/%s, [%d] %s\n",
30: gettype($res), $res, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
31: }
32:
33: $i = 0;
34: while ($field = $res->fetch_field()) {
35: var_dump($field);
36: $i++;
37: if (2 == $i) {
38: /*
39: Label column, result set charset.
40: All of the following columns are "too hot" - too server dependent
41: */
42: if ($field->charsetnr != $charsets['results']['nr']) {
43: printf("[004] Expecting charset %s/%d got %d\n",
44: $charsets['results']['charset'],
45: $charsets['results']['nr'], $field->charsetnr);
46: }
47: if ($field->length != (1 * $charsets['results']['maxlen'])) {
48: printf("[005] Expecting length %d got %d\n",
49: $charsets['results']['maxlen'],
50: $field->max_length);
51: }
52: }
53: }
54:
55: mysqli_stmt_close($stmt);
56: mysqli_close($link);
57: print "done!";
58: ?>
59: --CLEAN--
60: <?php
61: require_once("clean_table.inc");
62: ?>
63: --EXPECTF--
64: object(stdClass)#%d (13) {
65: [%u|b%"name"]=>
66: %unicode|string%(2) "id"
67: [%u|b%"orgname"]=>
68: %unicode|string%(2) "id"
69: [%u|b%"table"]=>
70: %unicode|string%(4) "test"
71: [%u|b%"orgtable"]=>
72: %unicode|string%(4) "test"
73: [%u|b%"def"]=>
74: %unicode|string%(0) ""
75: [%u|b%"db"]=>
76: %unicode|string%(%d) "%s"
77: [%u|b%"catalog"]=>
78: %unicode|string%(%d) "%s"
79: [%u|b%"max_length"]=>
80: int(0)
81: [%u|b%"length"]=>
82: int(11)
83: [%u|b%"charsetnr"]=>
84: int(63)
85: [%u|b%"flags"]=>
86: int(49155)
87: [%u|b%"type"]=>
88: int(3)
89: [%u|b%"decimals"]=>
90: int(0)
91: }
92: object(stdClass)#%d (13) {
93: [%u|b%"name"]=>
94: %unicode|string%(5) "label"
95: [%u|b%"orgname"]=>
96: %unicode|string%(5) "label"
97: [%u|b%"table"]=>
98: %unicode|string%(4) "test"
99: [%u|b%"orgtable"]=>
100: %unicode|string%(4) "test"
101: [%u|b%"def"]=>
102: %unicode|string%(0) ""
103: [%u|b%"db"]=>
104: %unicode|string%(%d) "%s"
105: [%u|b%"catalog"]=>
106: %unicode|string%(%d) "%s"
107: [%u|b%"max_length"]=>
108: int(%d)
109: [%u|b%"length"]=>
110: int(%d)
111: [%u|b%"charsetnr"]=>
112: int(%d)
113: [%u|b%"flags"]=>
114: int(0)
115: [%u|b%"type"]=>
116: int(254)
117: [%u|b%"decimals"]=>
118: int(0)
119: }
120: object(stdClass)#%d (13) {
121: [%u|b%"name"]=>
122: %unicode|string%(3) "_id"
123: [%u|b%"orgname"]=>
124: %unicode|string%(0) ""
125: [%u|b%"table"]=>
126: %unicode|string%(0) ""
127: [%u|b%"orgtable"]=>
128: %unicode|string%(0) ""
129: [%u|b%"def"]=>
130: %unicode|string%(0) ""
131: [%u|b%"db"]=>
132: %unicode|string%(0) ""
133: [%u|b%"catalog"]=>
134: %unicode|string%(%d) "%s"
135: [%u|b%"max_length"]=>
136: int(0)
137: [%u|b%"length"]=>
138: int(%d)
139: [%u|b%"charsetnr"]=>
140: int(63)
141: [%u|b%"flags"]=>
142: int(32897)
143: [%u|b%"type"]=>
144: int(8)
145: [%u|b%"decimals"]=>
146: int(0)
147: }
148: object(stdClass)#%d (13) {
149: [%u|b%"name"]=>
150: %unicode|string%(8) "___label"
151: [%u|b%"orgname"]=>
152: %unicode|string%(0) ""
153: [%u|b%"table"]=>
154: %unicode|string%(0) ""
155: [%u|b%"orgtable"]=>
156: %unicode|string%(0) ""
157: [%u|b%"def"]=>
158: %unicode|string%(0) ""
159: [%u|b%"db"]=>
160: %unicode|string%(0) ""
161: [%u|b%"catalog"]=>
162: %unicode|string%(%d) "%s"
163: [%u|b%"max_length"]=>
164: int(%d)
165: [%u|b%"length"]=>
166: int(%d)
167: [%u|b%"charsetnr"]=>
168: int(%d)
169: [%u|b%"flags"]=>
170: int(0)
171: [%u|b%"type"]=>
172: int(253)
173: [%u|b%"decimals"]=>
174: int(31)
175: }
176: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>