Annotation of embedaddon/php/ext/mysqli/tests/mysqli_field_seek.phpt, revision 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>