Annotation of embedaddon/php/ext/mysqli/tests/067.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: function test: nested selects (cursors)
                      3: --SKIPIF--
                      4: <?php
                      5:        require_once('skipif.inc');
                      6:        require_once('skipifconnectfailure.inc');
                      7:        require_once("connect.inc");
                      8: 
                      9:        if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
                     10:                die("skip Cannot connect to check required version");
                     11: 
                     12:        /* skip cursor test for versions < 50004 */
                     13:        if ((!$IS_MYSQLND && (mysqli_get_client_version() < 50009)) ||
                     14:                        (mysqli_get_server_version($link) < 50009)) {
                     15:                        die(sprintf("skip Client library doesn't support cursors (%s/%s)",
                     16:                                        mysqli_get_client_version(), mysqli_get_server_version($link)));
                     17:        }
                     18:        mysqli_close($link);
                     19: ?>
                     20: --FILE--
                     21: <?php
                     22:        function open_cursor($mysql, $query) {
                     23:                if (!is_object($stmt = $mysql->prepare($query))) {
                     24:                        printf("[001] Cannot create statement object for '%s', [%d] %s\n",
                     25:                                        $query, $mysql->errno, $mysql->error);
                     26:                }
                     27: 
                     28:                $stmt->attr_set(MYSQLI_STMT_ATTR_CURSOR_TYPE, MYSQLI_CURSOR_TYPE_READ_ONLY);
                     29:                return $stmt;
                     30:        }
                     31: 
                     32:        require_once("connect.inc");
                     33:        $mysql = new my_mysqli($host, $user, $passwd, $db, $port, $socket);
                     34: 
                     35:        if ((!$IS_MYSQLND && mysqli_get_client_version() < 50009) ||
                     36:                (mysqli_get_server_version($mysql) < 50009)) {
                     37:                /* we really want to skip it... */
                     38:                die(var_dump(63));
                     39:        }
                     40: 
                     41:        $a = array();
                     42: 
                     43:        for ($i=0;$i < 3; $i++) {
                     44:                $mysql->query("DROP TABLE IF EXISTS cursor$i");
                     45:                $mysql->query("CREATE TABLE cursor$i (a int not null) ENGINE=" . $engine);
                     46:                $mysql->query("INSERT INTO cursor$i VALUES (1),(2),(3),(4),(5),(6)");
                     47:                $stmt[$i] = open_cursor($mysql, "SELECT a FROM cursor$i");
                     48:                $stmt[$i]->execute();
                     49:                $stmt[$i]->bind_result($a[$i]);
                     50:        }
                     51: 
                     52: 
                     53:        $cnt = 0;
                     54:        while ($stmt[0]->fetch()) {
                     55:                $stmt[1]->fetch();
                     56:                $stmt[2]->fetch();
                     57:                $cnt += $a[0] + $a[1] + $a[2];
                     58:        }
                     59: 
                     60:        for ($i=0; $i < 3; $i++) {
                     61:                $stmt[$i]->close();
                     62:        }
                     63: 
                     64:        $mysql->close();
                     65:        var_dump($cnt);
                     66: ?>
                     67: --CLEAN--
                     68: <?php
                     69: require_once("connect.inc");
                     70: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
                     71:    printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
                     72: 
                     73: for ($i =0; $i < 3; $i++) {
                     74:        if (!mysqli_query($link, sprintf("DROP TABLE IF EXISTS cursor%d", $i)))
                     75:                printf("[c002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                     76: }
                     77: 
                     78: mysqli_close($link);
                     79: ?>
                     80: --EXPECT--
                     81: int(63)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>