Annotation of embedaddon/php/ext/mysqli/tests/mysqli_stmt_execute_stored_proc_next_result.phpt, revision 1.1.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>