Annotation of embedaddon/php/ext/mysqli/tests/mysqli_query_stored_proc.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: mysqli_query() - Stored Procedures
! 3: --SKIPIF--
! 4: <?php
! 5: require_once('skipif.inc');
! 6: require_once('skipifconnectfailure.inc');
! 7: require_once('connect.inc');
! 8: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
! 9: die(sprintf('skip Cannot connect to MySQL, [%d] %s.', mysqli_connect_errno(), mysqli_connect_error()));
! 10: }
! 11: if (mysqli_get_server_version($link) <= 50000) {
! 12: die(sprintf('skip Needs MySQL 5.0+, found version %d.', mysqli_get_server_version($link)));
! 13: }
! 14: ?>
! 15: --FILE--
! 16: <?php
! 17: require_once('connect.inc');
! 18: require_once('table.inc');
! 19:
! 20: if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'))
! 21: printf("[001] [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
! 22:
! 23: if (mysqli_query($link, 'CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT id, label FROM test ORDER BY id ASC;
! 24: END;')) {
! 25: /* stored proc which returns one result set */
! 26: if (mysqli_multi_query($link, 'CALL p()')) {
! 27: do {
! 28: if ($res = mysqli_use_result($link)) {
! 29: // skip results, don't fetch all from server
! 30: var_dump(mysqli_fetch_assoc($res));
! 31: mysqli_free_result($res);
! 32: }
! 33: } while (mysqli_more_results($link) && mysqli_next_result($link));
! 34:
! 35: } else {
! 36: printf("[003] Cannot call SP, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 37: }
! 38:
! 39: if (mysqli_multi_query($link, 'CALL p()')) {
! 40: do {
! 41: if ($res = mysqli_store_result($link)) {
! 42: // fetch all results from server, but skip on client side
! 43: var_dump(mysqli_fetch_assoc($res));
! 44: mysqli_free_result($res);
! 45: }
! 46: } while (mysqli_more_results($link) && mysqli_next_result($link));
! 47:
! 48: } else {
! 49: printf("[004] Cannot call SP, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 50: }
! 51:
! 52: if (mysqli_multi_query($link, 'CALL p()')) {
! 53: do {
! 54: if ($res = mysqli_store_result($link)) {
! 55: // fetch all results from server, but skip on client side
! 56: var_dump(mysqli_fetch_assoc($res));
! 57: while (mysqli_fetch_assoc($res))
! 58: ;
! 59: mysqli_free_result($res);
! 60: }
! 61: } while (mysqli_more_results($link) && mysqli_next_result($link));
! 62:
! 63: } else {
! 64: printf("[005] Cannot call SP, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 65: }
! 66:
! 67: } else {
! 68: printf("[002] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
! 69: }
! 70:
! 71: if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'))
! 72: printf("[006] [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
! 73:
! 74: if (mysqli_query($link, 'CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT id, label FROM test ORDER BY id ASC; SELECT id FROM test ORDER BY id ASC; END;')) {
! 75: /* stored proc which returns two result sets */
! 76:
! 77: if (mysqli_multi_query($link, 'CALL p()')) {
! 78: do {
! 79: if ($res = mysqli_store_result($link)) {
! 80: // fetch all results from server, but skip on client side
! 81: var_dump(mysqli_fetch_assoc($res));
! 82: mysqli_free_result($res);
! 83: }
! 84: } while (mysqli_more_results($link) && mysqli_next_result($link));
! 85:
! 86: } else {
! 87: printf("[008] Cannot call SP, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 88: }
! 89:
! 90: } else {
! 91: printf("[007] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
! 92: }
! 93:
! 94: if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'))
! 95: printf("[009] [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
! 96:
! 97: if (mysqli_real_query($link, 'CREATE PROCEDURE p(OUT ver_param VARCHAR(25)) BEGIN SELECT VERSION() INTO ver_param; END;')) {
! 98: /* no result set, just output parameter */
! 99: if (!mysqli_query($link, 'CALL p(@version)'))
! 100: printf("[011] Cannot call SP, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 101:
! 102: if (!mysqli_query($link, "SET @version = 'unknown'"))
! 103: printf("[012] Cannot reset user variable, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 104:
! 105: if (!mysqli_query($link, 'CALL p(@version)'))
! 106: printf("[013] Cannot call SP, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 107:
! 108: if (!$res = mysqli_query($link, 'SELECT @version as _vers'))
! 109: printf("[014] Cannot fetch user variable, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 110:
! 111: if (!$row = mysqli_fetch_assoc($res) ||
! 112: $row['_vers'] == 'unknown')
! 113: printf("[015] Results seem wrong, got %s, [%d] %s\n",
! 114: $row['_vers'],
! 115: mysqli_errno($link), mysqli_error($link));
! 116: mysqli_free_result($res);
! 117:
! 118: } else {
! 119: printf("[010] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
! 120: }
! 121:
! 122: if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'))
! 123: printf("[016] [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
! 124:
! 125: if (mysqli_real_query($link, 'CREATE PROCEDURE p(IN ver_in VARCHAR(25), OUT ver_out VARCHAR(25)) BEGIN SELECT ver_in INTO ver_out; END;')) {
! 126: /* no result set, one input, one output parameter */
! 127: if (!mysqli_query($link, "CALL p('myversion', @version)"))
! 128: printf("[018] Cannot call SP, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 129:
! 130: if (!mysqli_query($link, "SET @version = 'unknown'"))
! 131: printf("[019] Cannot reset user variable, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 132:
! 133: if (!mysqli_query($link, "CALL p('myversion', @version)"))
! 134: printf("[020] Cannot call SP, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 135:
! 136: if (!$res = mysqli_query($link, 'SELECT @version as _vers'))
! 137: printf("[021] Cannot fetch user variable, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 138:
! 139: if (!$row = mysqli_fetch_assoc($res) ||
! 140: $row['_vers'] == 'myversion')
! 141: printf("[022] Results seem wrong, got %s, [%d] %s\n",
! 142: $row['_vers'],
! 143: mysqli_errno($link), mysqli_error($link));
! 144: mysqli_free_result($res);
! 145:
! 146: } else {
! 147: printf("[017] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
! 148: }
! 149:
! 150: mysqli_close($link);
! 151: print "done!";
! 152: ?>
! 153: --CLEAN--
! 154: <?php
! 155: require_once("connect.inc");
! 156: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
! 157: printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
! 158:
! 159: if (!mysqli_query($link, "DROP TABLE IF EXISTS test"))
! 160: printf("[c002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 161:
! 162: @mysqli_query($link, "DROP PROCEDURE IS EXISTS p");
! 163:
! 164: mysqli_close($link);
! 165: ?>
! 166: --EXPECTF--
! 167: array(2) {
! 168: [%u|b%"id"]=>
! 169: %unicode|string%(1) "1"
! 170: [%u|b%"label"]=>
! 171: %unicode|string%(1) "a"
! 172: }
! 173: array(2) {
! 174: [%u|b%"id"]=>
! 175: %unicode|string%(1) "1"
! 176: [%u|b%"label"]=>
! 177: %unicode|string%(1) "a"
! 178: }
! 179: array(2) {
! 180: [%u|b%"id"]=>
! 181: %unicode|string%(1) "1"
! 182: [%u|b%"label"]=>
! 183: %unicode|string%(1) "a"
! 184: }
! 185: array(2) {
! 186: [%u|b%"id"]=>
! 187: %unicode|string%(1) "1"
! 188: [%u|b%"label"]=>
! 189: %unicode|string%(1) "a"
! 190: }
! 191: array(1) {
! 192: [%u|b%"id"]=>
! 193: %unicode|string%(1) "1"
! 194: }
! 195: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>