Annotation of embedaddon/php/ext/mysqli/tests/mysqli_field_seek.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: mysqli_field_seek()
3: --SKIPIF--
4: <?php
5: require_once('skipif.inc');
6: require_once('skipifemb.inc');
7: require_once('skipifconnectfailure.inc');
8: ?>
9: --FILE--
10: <?php
11: function mysqli_field_seek_flags($flags) {
12:
13: $ret = '';
14:
15: if ($flags & MYSQLI_NOT_NULL_FLAG)
16: $ret .= 'MYSQLI_NOT_NULL_FLAG ';
17:
18: if ($flags & MYSQLI_PRI_KEY_FLAG)
19: $ret .= 'MYSQLI_PRI_KEY_FLAG ';
20:
21: if ($flags & MYSQLI_UNIQUE_KEY_FLAG)
22: $ret .= 'MYSQLI_UNIQUE_KEY_FLAG ';
23:
24: if ($flags & MYSQLI_MULTIPLE_KEY_FLAG)
25: $ret .= 'MYSQLI_MULTIPLE_KEY_FLAG ';
26:
27: if ($flags & MYSQLI_BLOB_FLAG)
28: $ret .= 'MYSQLI_BLOB_FLAG ';
29:
30: if ($flags & MYSQLI_UNSIGNED_FLAG)
31: $ret .= 'MYSQLI_UNSIGNED_FLAG ';
32:
33: if ($flags & MYSQLI_ZEROFILL_FLAG)
34: $ret .= 'MYSQLI_ZEROFILL_FLAG ';
35:
36: if ($flags & MYSQLI_AUTO_INCREMENT_FLAG)
37: $ret .= 'MYSQLI_AUTO_INCREMENT_FLAG ';
38:
39: if ($flags & MYSQLI_TIMESTAMP_FLAG)
40: $ret .= 'MYSQLI_TIMESTAMP_FLAG ';
41:
42: if ($flags & MYSQLI_SET_FLAG)
43: $ret .= 'MYSQLI_SET_FLAG ';
44:
45: if ($flags & MYSQLI_NUM_FLAG)
46: $ret .= 'MYSQLI_NUM_FLAG ';
47:
48: if ($flags & MYSQLI_PART_KEY_FLAG)
49: $ret .= 'MYSQLI_PART_KEY_FLAG ';
50:
51: if ($flags & MYSQLI_GROUP_FLAG)
52: $ret .= 'MYSQLI_GROUP_FLAG ';
53:
54: return $ret;
55: }
56:
57: require_once("connect.inc");
58:
59: $tmp = NULL;
60: $link = NULL;
61:
62: if (!is_null($tmp = @mysqli_field_seek()))
63: printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
64:
65: if (!is_null($tmp = @mysqli_field_seek($link)))
66: printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
67:
68: require('table.inc');
69: $charsets = my_get_charsets($link);
70:
71: if (!$res = mysqli_query($link, "SELECT id, label FROM test ORDER BY id LIMIT 1", MYSQLI_USE_RESULT)) {
72: printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
73: }
74:
75: var_dump(mysqli_field_seek($res, -1));
76: var_dump(mysqli_fetch_field($res));
77: var_dump(mysqli_field_seek($res, 0));
78: var_dump(mysqli_fetch_field($res));
79: var_dump(mysqli_field_seek($res, 1));
80:
81: $field = mysqli_fetch_field($res);
82: var_dump($field);
83: /* label column, result set charset */
84: if ($field->charsetnr != $charsets['results']['nr']) {
85: printf("[004] Expecting charset %s/%d got %d\n",
86: $charsets['results']['charset'],
87: $charsets['results']['nr'], $field->charsetnr);
88: }
89: if ($field->length != (1 * $charsets['results']['maxlen'])) {
90: printf("[005] Expecting length %d got %d\n",
91: $charsets['results']['maxlen'],
92: $field->max_length);
93: }
94:
95: var_dump(mysqli_field_tell($res));
96: var_dump(mysqli_field_seek($res, 2));
97: var_dump(mysqli_fetch_field($res));
98: var_dump(mysqli_field_seek($res, PHP_INT_MAX + 1));
99:
100: if (!is_null($tmp = @mysqli_field_seek($res, 0, "too many")))
101: printf("[004] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
102:
103: mysqli_free_result($res);
104:
105: if (!$res = mysqli_query($link, "SELECT NULL as _null", MYSQLI_STORE_RESULT)) {
106: printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
107: }
108: var_dump(mysqli_field_seek($res, 0));
109: var_dump(mysqli_fetch_field($res));
110:
111: mysqli_free_result($res);
112:
113: var_dump(mysqli_field_seek($res, 0));
114:
115: mysqli_close($link);
116: print "done!";
117: ?>
118: --CLEAN--
119: <?php
120: require_once("clean_table.inc");
121: ?>
122: --EXPECTF--
123: Warning: mysqli_field_seek(): Invalid field offset in %s on line %d
124: bool(false)
125: object(stdClass)#%d (13) {
126: [%u|b%"name"]=>
127: %unicode|string%(2) "id"
128: [%u|b%"orgname"]=>
129: %unicode|string%(2) "id"
130: [%u|b%"table"]=>
131: %unicode|string%(4) "test"
132: [%u|b%"orgtable"]=>
133: %unicode|string%(4) "test"
134: [%u|b%"def"]=>
135: %unicode|string%(0) ""
136: [%u|b%"db"]=>
137: %unicode|string%(%d) "%s"
138: [%u|b%"catalog"]=>
139: %unicode|string%(%d) "%s"
140: [%u|b%"max_length"]=>
141: int(0)
142: [%u|b%"length"]=>
143: int(11)
144: [%u|b%"charsetnr"]=>
145: int(63)
146: [%u|b%"flags"]=>
147: int(49155)
148: [%u|b%"type"]=>
149: int(3)
150: [%u|b%"decimals"]=>
151: int(0)
152: }
153: bool(true)
154: object(stdClass)#%d (13) {
155: [%u|b%"name"]=>
156: %unicode|string%(2) "id"
157: [%u|b%"orgname"]=>
158: %unicode|string%(2) "id"
159: [%u|b%"table"]=>
160: %unicode|string%(4) "test"
161: [%u|b%"orgtable"]=>
162: %unicode|string%(4) "test"
163: [%u|b%"def"]=>
164: %unicode|string%(0) ""
165: [%u|b%"db"]=>
166: %unicode|string%(%d) "%s"
167: [%u|b%"catalog"]=>
168: %unicode|string%(%d) "%s"
169: [%u|b%"max_length"]=>
170: int(0)
171: [%u|b%"length"]=>
172: int(11)
173: [%u|b%"charsetnr"]=>
174: int(63)
175: [%u|b%"flags"]=>
176: int(49155)
177: [%u|b%"type"]=>
178: int(3)
179: [%u|b%"decimals"]=>
180: int(0)
181: }
182: bool(true)
183: object(stdClass)#%d (13) {
184: [%u|b%"name"]=>
185: %unicode|string%(5) "label"
186: [%u|b%"orgname"]=>
187: %unicode|string%(5) "label"
188: [%u|b%"table"]=>
189: %unicode|string%(4) "test"
190: [%u|b%"orgtable"]=>
191: %unicode|string%(4) "test"
192: [%u|b%"def"]=>
193: %unicode|string%(0) ""
194: [%u|b%"db"]=>
195: %unicode|string%(%d) "%s"
196: [%u|b%"catalog"]=>
197: %unicode|string%(%d) "%s"
198: [%u|b%"max_length"]=>
199: int(%d)
200: [%u|b%"length"]=>
201: int(%d)
202: [%u|b%"charsetnr"]=>
203: int(%d)
204: [%u|b%"flags"]=>
205: int(0)
206: [%u|b%"type"]=>
207: int(254)
208: [%u|b%"decimals"]=>
209: int(0)
210: }
211: int(2)
212:
213: Warning: mysqli_field_seek(): Invalid field offset in %s on line %d
214: bool(false)
215: bool(false)
216:
217: Warning: mysqli_field_seek(): Invalid field offset in %s on line %d
218: bool(false)
219: bool(true)
220: object(stdClass)#3 (13) {
221: [%u|b%"name"]=>
222: %unicode|string%(5) "_null"
223: [%u|b%"orgname"]=>
224: %unicode|string%(0) ""
225: [%u|b%"table"]=>
226: %unicode|string%(0) ""
227: [%u|b%"orgtable"]=>
228: %unicode|string%(0) ""
229: [%u|b%"def"]=>
230: %unicode|string%(0) ""
231: [%u|b%"db"]=>
232: %unicode|string%(0) ""
233: [%u|b%"catalog"]=>
234: %unicode|string%(%d) "%s"
235: [%u|b%"max_length"]=>
236: int(0)
237: [%u|b%"length"]=>
238: int(0)
239: [%u|b%"charsetnr"]=>
240: int(63)
241: [%u|b%"flags"]=>
242: int(32896)
243: [%u|b%"type"]=>
244: int(6)
245: [%u|b%"decimals"]=>
246: int(0)
247: }
248:
249: Warning: mysqli_field_seek(): Couldn't fetch mysqli_result in %s on line %d
250: NULL
251: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>