Annotation of embedaddon/php/ext/mysqli/tests/mysqli_stmt_get_result2.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: mysqli_stmt_get_result()
! 3: --SKIPIF--
! 4: <?php
! 5: require_once('skipif.inc');
! 6: require_once('skipifemb.inc');
! 7: require_once('skipifconnectfailure.inc');
! 8: if (!function_exists('mysqli_stmt_get_result'))
! 9: die('skip mysqli_stmt_get_result not available');
! 10: ?>
! 11: --FILE--
! 12: <?php
! 13: /*
! 14: NOTE: no datatype tests here! This is done by
! 15: mysqli_stmt_bind_result.phpt already. Restrict
! 16: this test case to the basics.
! 17: */
! 18: require_once("connect.inc");
! 19:
! 20: $tmp = NULL;
! 21: $link = NULL;
! 22:
! 23: if (!is_null($tmp = @mysqli_stmt_get_result()))
! 24: printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
! 25:
! 26: if (!is_null($tmp = @mysqli_stmt_get_result($link)))
! 27: printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
! 28:
! 29: require('table.inc');
! 30:
! 31: if (!$stmt = mysqli_stmt_init($link))
! 32: printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 33:
! 34: if (!is_null($tmp = @mysqli_stmt_get_result($stmt, "foo")))
! 35: printf("[004] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
! 36:
! 37: if (!mysqli_stmt_prepare($stmt, "SELECT id, label FROM test ORDER BY id ASC LIMIT 1"))
! 38: printf("[005] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 39:
! 40: if (!mysqli_stmt_execute($stmt))
! 41: printf("[006] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 42:
! 43: if (!is_object($res = mysqli_stmt_get_result($stmt)) || 'mysqli_result' != get_class($res)) {
! 44: printf("[007] Expecting object/mysqli_result got %s/%s, [%d] %s\n",
! 45: gettype($res), $res, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 46: }
! 47: while ($row = mysqli_fetch_assoc($res))
! 48: var_dump($row);
! 49: var_dump(mysqli_fetch_assoc($res));
! 50: mysqli_free_result($res);
! 51:
! 52: if (false !== ($res = mysqli_stmt_get_result($stmt))) {
! 53: printf("[008] boolean/false got %s/%s, [%d] %s\n",
! 54: gettype($res), $res, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 55: }
! 56:
! 57: mysqli_stmt_execute($stmt);
! 58: if (!is_object($res = mysqli_stmt_get_result($stmt)) || 'mysqli_result' != get_class($res)) {
! 59: printf("[009] Expecting object/mysqli_result got %s/%s, [%d] %s\n",
! 60: gettype($res), $res, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 61: }
! 62: while ($row = mysqli_fetch_assoc($res))
! 63: var_dump($row);
! 64: var_dump(mysqli_fetch_assoc($res));
! 65: mysqli_free_result($res);
! 66:
! 67: mysqli_stmt_close($stmt);
! 68:
! 69: if (!($stmt = mysqli_stmt_init($link)) ||
! 70: !mysqli_stmt_prepare($stmt, "SELECT id, label FROM test ORDER BY id ASC LIMIT 2") ||
! 71: !mysqli_stmt_execute($stmt))
! 72: printf("[010] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 73:
! 74: $id = $label = null;
! 75: if (!mysqli_stmt_bind_result($stmt, $id, $label))
! 76: printf("[011] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 77:
! 78: if (!mysqli_stmt_fetch($stmt))
! 79: printf("[012] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 80:
! 81: if (false !== ($res = mysqli_stmt_get_result($stmt))) {
! 82: printf("[013] boolean/false got %s/%s, [%d] %s\n",
! 83: gettype($res), $res, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 84: }
! 85:
! 86: mysqli_stmt_close($stmt);
! 87:
! 88: if (!($stmt = mysqli_stmt_init($link)) ||
! 89: !mysqli_stmt_prepare($stmt, "SELECT id, label FROM test ORDER BY id ASC LIMIT 2") ||
! 90: !mysqli_stmt_execute($stmt))
! 91: printf("[014] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 92:
! 93: if (!is_object($res = mysqli_stmt_get_result($stmt)) || 'mysqli_result' != get_class($res)) {
! 94: printf("[015] Expecting object/mysqli_result got %s/%s, [%d] %s\n",
! 95: gettype($res), $res, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 96: }
! 97:
! 98: $id = $label = null;
! 99: if (!mysqli_stmt_bind_result($stmt, $id, $label))
! 100: printf("[016] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 101:
! 102: if (!mysqli_stmt_fetch($stmt))
! 103: printf("[017] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 104:
! 105: mysqli_stmt_close($stmt);
! 106:
! 107: if (!($stmt = mysqli_stmt_init($link)) ||
! 108: !mysqli_stmt_prepare($stmt, "SELECT id, label FROM test ORDER BY id ASC LIMIT 2") ||
! 109: !mysqli_stmt_execute($stmt))
! 110: printf("[018] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 111:
! 112: if (!is_object($res = mysqli_stmt_get_result($stmt)) || 'mysqli_result' != get_class($res)) {
! 113: printf("[019] Expecting object/mysqli_result got %s/%s, [%d] %s\n",
! 114: gettype($res), $res, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 115: }
! 116:
! 117: $id = $label = null;
! 118: if (!mysqli_stmt_bind_result($stmt, $id, $label))
! 119: printf("[020] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 120:
! 121: $row = mysqli_fetch_assoc($res);
! 122: if (NULL !== $id || NULL !== $label)
! 123: printf("[021] Bound variables should not have been set\n");
! 124: mysqli_free_result($res);
! 125:
! 126: mysqli_stmt_close($stmt);
! 127:
! 128: if (!($stmt = mysqli_stmt_init($link)) ||
! 129: !mysqli_stmt_prepare($stmt, "SELECT id, label FROM test ORDER BY id ASC LIMIT 2") ||
! 130: !mysqli_stmt_execute($stmt))
! 131: printf("[022] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 132:
! 133: if (!is_object($res = mysqli_stmt_get_result($stmt)) || 'mysqli_result' != get_class($res)) {
! 134: printf("[023] Expecting object/mysqli_result got %s/%s, [%d] %s\n",
! 135: gettype($res), $res, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 136: }
! 137: if (!in_array($res->type, array(MYSQLI_STORE_RESULT, MYSQLI_USE_RESULT))) {
! 138: printf("[024] Unknown result set type %s\n", $res->type);
! 139: }
! 140: if ($res->type !== MYSQLI_STORE_RESULT)
! 141: printf("[025] Expecting int/%d got %s/%s", MYSQLI_STORE_RESULT, gettype($res->type), $res->type);
! 142:
! 143: mysqli_free_result($res);
! 144: mysqli_stmt_close($stmt);
! 145: mysqli_close($link);
! 146:
! 147: if (NULL !== ($res = mysqli_stmt_get_result($stmt))) {
! 148: printf("[022] Expecting NULL got %s/%s\n",
! 149: gettype($res), $res);
! 150: }
! 151:
! 152: print "done!";
! 153: ?>
! 154: --CLEAN--
! 155: <?php
! 156: require_once("clean_table.inc");
! 157: ?>
! 158: --EXPECTF--
! 159: array(2) {
! 160: [%u|b%"id"]=>
! 161: int(1)
! 162: [%u|b%"label"]=>
! 163: %unicode|string%(1) "a"
! 164: }
! 165: NULL
! 166: array(2) {
! 167: [%u|b%"id"]=>
! 168: int(1)
! 169: [%u|b%"label"]=>
! 170: %unicode|string%(1) "a"
! 171: }
! 172: NULL
! 173: [017] [2014] Commands out of sync; you can't run this command now
! 174:
! 175: Warning: mysqli_stmt_get_result(): Couldn't fetch mysqli_stmt in %s on line %d
! 176: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>