Annotation of embedaddon/php/ext/mysqli/tests/mysqli_stmt_result_metadata.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: mysqli_stmt_result_metadata()
! 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: if (!is_null($tmp = @mysqli_stmt_result_metadata()))
! 17: printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
! 18:
! 19: if (!is_null($tmp = @mysqli_stmt_result_metadata($link)))
! 20: printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
! 21:
! 22: require('table.inc');
! 23:
! 24: if (!$stmt = mysqli_stmt_init($link))
! 25: printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 26:
! 27: if (NULL !== ($tmp = mysqli_stmt_result_metadata($stmt)))
! 28: printf("[004] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
! 29:
! 30: if (!mysqli_stmt_prepare($stmt, "SELECT id, label FROM test"))
! 31: printf("[005] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 32:
! 33: if (!is_object(($res = mysqli_stmt_result_metadata($stmt))))
! 34: printf("[006] Expecting object, got %s/%s\n", gettype($tmp), $tmp);
! 35:
! 36: if (2 !== ($tmp = mysqli_num_fields($res)))
! 37: printf("[007] Expecting int/2, got %s/%s, [%d] %s\n",
! 38: gettype($tmp), $tmp, mysqli_errno($link), mysqli_error($link));
! 39:
! 40: if (!is_object($field0_fetch = mysqli_fetch_field($res)))
! 41: printf("[008] Expecting object, got %s/%s, [%d] %s\n",
! 42: gettype($field0_fetch), $field0_fetch, mysqli_errno($link), mysqli_error($link));
! 43:
! 44: if (!is_object($field0_direct = mysqli_fetch_field_direct($res, 0)))
! 45: printf("[009] Expecting object, got %s/%s, [%d] %s\n",
! 46: gettype($field0_direct), $field0_direct, mysqli_errno($link), mysqli_error($link));
! 47:
! 48: if ($field0_fetch != $field0_direct) {
! 49: printf("[010] mysqli_fetch_field() differs from mysqli_fetch_field_direct()\n");
! 50: var_dump($field0_fetch);
! 51: var_dump($field0_direct);
! 52: }
! 53:
! 54: var_dump($field0_fetch);
! 55:
! 56: if (!is_array($tmp = mysqli_fetch_fields($res)))
! 57: printf("[011] Expecting array, got %s/%s, [%d] %s\n",
! 58: gettype($tmp), $tmp, mysqli_errno($link), mysqli_error($link));
! 59:
! 60: if (empty($tmp[0]) || empty($tmp[1]) || $tmp[0] != $field0_direct) {
! 61: printf("[012] mysqli_fetch_fields() return value is suspicious\n");
! 62: var_dump($tmp);
! 63: }
! 64:
! 65: if (!mysqli_field_seek($res, 1))
! 66: printf("[013] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 67:
! 68: if (!is_object($field1_direct = mysqli_fetch_field_direct($res, 1)))
! 69: printf("[014] Expecting object, got %s/%s, [%d] %s\n",
! 70: gettype($field1_direct), $field1_direct, mysqli_errno($link), mysqli_error($link));
! 71:
! 72: if ($tmp[1] != $field1_direct) {
! 73: printf("[015] mysqli_fetch_field_direct() differs from mysqli_fetch_fields()\n");
! 74: var_dump($field1_direct);
! 75: var_dump($tmp);
! 76: }
! 77:
! 78: if (1 !== ($tmp = mysqli_field_tell($res)))
! 79: printf("[016] Expecting int/1, got %s/%s, [%d] %s\n",
! 80: gettype($tmp), $tmp, mysqli_errno($link), mysqli_error($link));
! 81:
! 82: mysqli_free_result($res);
! 83: mysqli_stmt_close($stmt);
! 84:
! 85: if (NULL !== ($tmp = mysqli_stmt_result_metadata($stmt)))
! 86: printf("[017] Expecting NULL, got %s/%s\n");
! 87:
! 88: /* Check that the function alias exists. It's a deprecated function,
! 89: but we have not announce the removal so far, therefore we need to check for it */
! 90: if (!is_null($tmp = @mysqli_stmt_result_metadata()))
! 91: printf("[018] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
! 92:
! 93: mysqli_close($link);
! 94: print "done!";
! 95: ?>
! 96: --CLEAN--
! 97: <?php
! 98: require_once("clean_table.inc");
! 99: ?>
! 100: --EXPECTF--
! 101:
! 102: Warning: mysqli_stmt_result_metadata(): invalid object or resource mysqli_stmt
! 103: in %s on line %d
! 104: object(stdClass)#5 (13) {
! 105: [%u|b%"name"]=>
! 106: %unicode|string%(2) "id"
! 107: [%u|b%"orgname"]=>
! 108: %unicode|string%(2) "id"
! 109: [%u|b%"table"]=>
! 110: %unicode|string%(4) "test"
! 111: [%u|b%"orgtable"]=>
! 112: %unicode|string%(4) "test"
! 113: [%u|b%"def"]=>
! 114: %unicode|string%(0) ""
! 115: [%u|b%"db"]=>
! 116: %unicode|string%(%d) "%s"
! 117: [%u|b%"catalog"]=>
! 118: %unicode|string%(%d) "%s"
! 119: [%u|b%"max_length"]=>
! 120: int(0)
! 121: [%u|b%"length"]=>
! 122: int(11)
! 123: [%u|b%"charsetnr"]=>
! 124: int(63)
! 125: [%u|b%"flags"]=>
! 126: int(49155)
! 127: [%u|b%"type"]=>
! 128: int(3)
! 129: [%u|b%"decimals"]=>
! 130: int(0)
! 131: }
! 132:
! 133: Warning: mysqli_stmt_result_metadata(): Couldn't fetch mysqli_stmt in %s on line %d
! 134: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>