Annotation of embedaddon/php/ext/mysqli/tests/mysqli_stmt_execute_stored_proc_next_result.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: mysqli_stmt_execute() - SP, next result
! 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) < 50503) {
! 12: die(sprintf('skip Needs MySQL 5.5.3+, found version %d.', mysqli_get_server_version($link)));
! 13: }
! 14: ?>
! 15: --FILE--
! 16: <?php
! 17: require_once('connect.inc');
! 18:
! 19: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
! 20: printf("[001] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
! 21: $host, $user, $db, $port, $socket);
! 22: }
! 23:
! 24: if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'))
! 25: printf("[003] [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
! 26:
! 27: if (mysqli_real_query($link, 'CREATE PROCEDURE p(IN ver_in VARCHAR(25)) BEGIN SELECT ver_in AS _ver_out; END;')) {
! 28: // one result set
! 29: if (!$stmt = mysqli_prepare($link, 'CALL p(?)'))
! 30: printf("[005] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 31:
! 32: $version = 'myversion';
! 33: if (!mysqli_stmt_bind_param($stmt, 's', $version))
! 34: printf("[006] Cannot bind input parameter, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 35:
! 36: if (!mysqli_stmt_execute($stmt))
! 37: printf("[007] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 38:
! 39: $version = 'unknown';
! 40: if (!mysqli_stmt_bind_result($stmt, $version) ||
! 41: !mysqli_stmt_fetch($stmt))
! 42: printf("[008] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 43:
! 44: if ($version !== "myversion")
! 45: printf("[009] Results seem wrong, got %s, [%d] %s\n",
! 46: $version,
! 47: mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 48:
! 49: mysqli_stmt_free_result($stmt);
! 50:
! 51: printf("[010] More results: %s\n", (mysqli_more_results($link)) ? "yes" : "no");
! 52: printf("[011] Next result: %s\n", (mysqli_next_result($link)) ? "yes" : "no");
! 53:
! 54: if (!mysqli_stmt_close($stmt))
! 55: printf("[012] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 56:
! 57: if (!$link->query("SELECT 1"))
! 58: printf("[013] [%d] %s\n", $link->errno, $link->error);
! 59:
! 60: } else {
! 61: printf("[004] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
! 62: }
! 63:
! 64: if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'))
! 65: printf("[014] [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
! 66:
! 67: if (mysqli_real_query($link, 'CREATE PROCEDURE p(IN ver_in VARCHAR(25)) BEGIN SELECT ver_in AS _ver_out; SELECT 1 AS _more; END;')) {
! 68: // two result sets
! 69: if (!$stmt = mysqli_prepare($link, 'CALL p(?)'))
! 70: printf("[015] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 71:
! 72: $version = 'myversion';
! 73: if (!mysqli_stmt_bind_param($stmt, 's', $version))
! 74: printf("[016] Cannot bind input parameter, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 75:
! 76: if (!mysqli_stmt_execute($stmt))
! 77: printf("[017] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 78:
! 79: $version = NULL;
! 80: if (!mysqli_stmt_bind_result($stmt, $version) ||
! 81: !mysqli_stmt_fetch($stmt))
! 82: printf("[018] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 83:
! 84: if ($version !== "myversion")
! 85: printf("[019] Results seem wrong, got %s, [%d] %s\n",
! 86: $version,
! 87: mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 88:
! 89: if (!mysqli_more_results($link) || !mysqli_next_result($link))
! 90: printf("[020] [%d] %s\n", $link->errno, $link->error);
! 91:
! 92: $more = NULL;
! 93: if (!mysqli_stmt_bind_result($stmt, $more) ||
! 94: !mysqli_stmt_fetch($stmt))
! 95: printf("[021] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 96:
! 97: if ($more !== 1)
! 98: printf("[022] Results seem wrong, got %s, [%d] %s\n",
! 99: $more,
! 100: mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 101:
! 102: if (!mysqli_stmt_close($stmt))
! 103: printf("[023] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
! 104:
! 105:
! 106: if (!$link->query("SELECT 1"))
! 107: printf("[024] [%d] %s\n", $link->errno, $link->error);
! 108:
! 109: } else {
! 110: printf("[025] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
! 111: }
! 112:
! 113: mysqli_close($link);
! 114: print "done!";
! 115: ?>
! 116: --CLEAN--
! 117: <?php
! 118: require_once("connect.inc");
! 119: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
! 120: printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
! 121:
! 122: @mysqli_query($link, 'DROP PROCEDURE IF EXISTS p');
! 123:
! 124: mysqli_close($link);
! 125: ?>
! 126: --XFAIL--
! 127: Unsupported and undefined, under development
! 128: --EXPECTF--
! 129: [010] More results: yes
! 130: [011] Next result: yes
! 131: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>