Annotation of embedaddon/php/ext/mysqli/tests/mysqli_fetch_field.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: mysqli_fetch_field()
! 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: require_once("connect.inc");
! 12:
! 13: $tmp = NULL;
! 14: $link = NULL;
! 15:
! 16: // Note: no SQL type tests, internally the same function gets used as for mysqli_fetch_array() which does a lot of SQL type test
! 17: if (!is_null($tmp = @mysqli_fetch_field()))
! 18: printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
! 19:
! 20: if (!is_null($tmp = @mysqli_fetch_field($link)))
! 21: printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
! 22:
! 23: require('table.inc');
! 24:
! 25: $charsets = my_get_charsets($link);
! 26: if (!$res = mysqli_query($link, "SELECT id AS ID, label FROM test AS TEST ORDER BY id LIMIT 1")) {
! 27: printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 28: }
! 29:
! 30: /* ID column, binary charset */
! 31: $tmp = mysqli_fetch_field($res);
! 32: var_dump($tmp);
! 33:
! 34: /* label column, result set charset */
! 35: $tmp = mysqli_fetch_field($res);
! 36: var_dump($tmp);
! 37: if ($tmp->charsetnr != $charsets['results']['nr']) {
! 38: printf("[004] Expecting charset %s/%d got %d\n",
! 39: $charsets['results']['charset'],
! 40: $charsets['results']['nr'], $tmp->charsetnr);
! 41: }
! 42: if ($tmp->length != (1 * $charsets['results']['maxlen'])) {
! 43: printf("[005] Expecting length %d got %d\n",
! 44: $charsets['results']['maxlen'],
! 45: $tmp->max_length);
! 46: }
! 47: if ($tmp->db != $db) {
! 48: printf("011] Expecting database '%s' got '%s'\n",
! 49: $db, $tmp->db);
! 50: }
! 51:
! 52: var_dump(mysqli_fetch_field($res));
! 53:
! 54: mysqli_free_result($res);
! 55:
! 56: // Read http://bugs.php.net/bug.php?id=42344 on defaults!
! 57: if (NULL !== ($tmp = mysqli_fetch_field($res)))
! 58: printf("[006] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
! 59:
! 60: if (!mysqli_query($link, "DROP TABLE IF EXISTS test"))
! 61: printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 62:
! 63: if (!mysqli_query($link, "CREATE TABLE test(id INT NOT NULL DEFAULT 1)"))
! 64: printf("[008] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 65:
! 66: if (!mysqli_query($link, "INSERT INTO test(id) VALUES (2)"))
! 67: printf("[009] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 68:
! 69: if (!$res = mysqli_query($link, "SELECT id as _default_test FROM test")) {
! 70: printf("[010] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 71: }
! 72: var_dump(mysqli_fetch_assoc($res));
! 73: /* binary */
! 74: var_dump(mysqli_fetch_field($res));
! 75: mysqli_free_result($res);
! 76:
! 77: mysqli_close($link);
! 78:
! 79: print "done!";
! 80: ?>
! 81: --CLEAN--
! 82: <?php
! 83: require_once("clean_table.inc");
! 84: ?>
! 85: --EXPECTF--
! 86: object(stdClass)#%d (13) {
! 87: [%u|b%"name"]=>
! 88: %unicode|string%(2) "ID"
! 89: [%u|b%"orgname"]=>
! 90: %unicode|string%(2) "id"
! 91: [%u|b%"table"]=>
! 92: %unicode|string%(4) "TEST"
! 93: [%u|b%"orgtable"]=>
! 94: %unicode|string%(%d) "%s"
! 95: [%u|b%"def"]=>
! 96: %unicode|string%(0) ""
! 97: [%u|b%"db"]=>
! 98: %unicode|string%(%d) "%s"
! 99: [%u|b%"catalog"]=>
! 100: %unicode|string%(%d) "%s"
! 101: [%u|b%"max_length"]=>
! 102: int(1)
! 103: [%u|b%"length"]=>
! 104: int(11)
! 105: [%u|b%"charsetnr"]=>
! 106: int(63)
! 107: [%u|b%"flags"]=>
! 108: int(49155)
! 109: [%u|b%"type"]=>
! 110: int(3)
! 111: [%u|b%"decimals"]=>
! 112: int(0)
! 113: }
! 114: object(stdClass)#%d (13) {
! 115: [%u|b%"name"]=>
! 116: %unicode|string%(5) "label"
! 117: [%u|b%"orgname"]=>
! 118: %unicode|string%(5) "label"
! 119: [%u|b%"table"]=>
! 120: %unicode|string%(4) "TEST"
! 121: [%u|b%"orgtable"]=>
! 122: %unicode|string%(%d) "%s"
! 123: [%u|b%"def"]=>
! 124: %unicode|string%(0) ""
! 125: [%u|b%"db"]=>
! 126: %unicode|string%(%d) "%s"
! 127: [%u|b%"catalog"]=>
! 128: %unicode|string%(%d) "%s"
! 129: [%u|b%"max_length"]=>
! 130: int(%d)
! 131: [%u|b%"length"]=>
! 132: int(%d)
! 133: [%u|b%"charsetnr"]=>
! 134: int(%d)
! 135: [%u|b%"flags"]=>
! 136: int(0)
! 137: [%u|b%"type"]=>
! 138: int(254)
! 139: [%u|b%"decimals"]=>
! 140: int(0)
! 141: }
! 142: bool(false)
! 143:
! 144: Warning: mysqli_fetch_field(): Couldn't fetch mysqli_result in %s on line %d
! 145: array(1) {
! 146: [%u|b%"_default_test"]=>
! 147: %unicode|string%(1) "2"
! 148: }
! 149: object(stdClass)#%d (13) {
! 150: [%u|b%"name"]=>
! 151: %unicode|string%(13) "_default_test"
! 152: [%u|b%"orgname"]=>
! 153: %unicode|string%(2) "id"
! 154: [%u|b%"table"]=>
! 155: %unicode|string%(%d) "%s"
! 156: [%u|b%"orgtable"]=>
! 157: %unicode|string%(%d) "%s"
! 158: [%u|b%"def"]=>
! 159: %unicode|string%(0) ""
! 160: [%u|b%"db"]=>
! 161: %unicode|string%(%d) "%s"
! 162: [%u|b%"catalog"]=>
! 163: %unicode|string%(%d) "%s"
! 164: [%u|b%"max_length"]=>
! 165: int(1)
! 166: [%u|b%"length"]=>
! 167: int(11)
! 168: [%u|b%"charsetnr"]=>
! 169: int(63)
! 170: [%u|b%"flags"]=>
! 171: int(32769)
! 172: [%u|b%"type"]=>
! 173: int(3)
! 174: [%u|b%"decimals"]=>
! 175: int(0)
! 176: }
! 177: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>