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

1.1       misho       1: --TEST--
                      2: mysqli_fetch_array()
                      3: --SKIPIF--
                      4: <?php
                      5: require_once('skipif.inc');
                      6: require_once('skipifemb.inc');
                      7: require_once('skipifconnectfailure.inc');
                      8: ?>
                      9: --FILE--
                     10: <?php
                     11:        require("table.inc");
                     12: 
                     13:        // do as much as we can do in 5 seconds
                     14:        $start = microtime(true);
                     15:        for ($id = 100, $start = microtime(true); (microtime(true) - $start) < 5; $id++) {
                     16:                if (!mysqli_query($link, $sql = sprintf("INSERT INTO test(id, label) VALUES (%d, '%s')",
                     17:                        $id, mysqli_real_escape_string($link, chr(65 + ($id % 26)))))) {
                     18:                                printf("[001] %s failed: [%d] %s\n", $sql, mysqli_errno($link), mysqli_error($link));
                     19:                                break;
                     20:                }
                     21:        }
                     22: 
                     23:        if (!$res = mysqli_query($link, 'SELECT id, label FROM test')) {
                     24:                printf("[002] SELECT failed: [%d] %s\n", mysqli_errno($link), mysqli_errno($link));
                     25:        }
                     26: 
                     27:        while ($row = mysqli_fetch_array($res)) {
                     28:                // overwrite results and check if the cache magic works
                     29:                $row['label'] = NULL;
                     30:        }
                     31:        mysqli_free_result($res);
                     32: 
                     33:        if (!$res = mysqli_query($link, 'SELECT id, label FROM test')) {
                     34:                printf("[003] SELECT failed: [%d] %s\n", mysqli_errno($link), mysqli_errno($link));
                     35:        }
                     36: 
                     37:        $i = 0;
                     38:        $results = array();
                     39:        while ($row = mysqli_fetch_array($res, MYSQLI_BOTH)) {
                     40: 
                     41:                // create copies and destroy later
                     42:                $results[$i++] = &$row;
                     43:                if ($i % 999) {
                     44:                        $results = array();
                     45:                }
                     46: 
                     47:                if ($row[0] < 0 || $row[0] > $id) {
                     48:                        printf("[004] Unexpected result row[0] = '%s' (range 0...%d), [%d] %s\n",
                     49:                                $row[0], $id, mysqli_errno($link), mysqli_error($link));
                     50:                        break;
                     51:                }
                     52:                if ($row[0] !== $row['id']) {
                     53:                        printf("[005] Unexpected result row[0] = '%s', row[id] = '%s', [%d] %s\n",
                     54:                                $row[0], $row[id], mysqli_errno($link), mysqli_error($link));
                     55:                        break;
                     56:                }
                     57: 
                     58:                $len = strlen($row[1]);
                     59:                if (!is_string($row[1]) || $len == 0 || $len > 1) {
                     60:                        printf("[006] Unexpected result row[1] = '%s', [%d] %s\n",
                     61:                                $row[1], mysqli_errno($link), mysqli_error($link));
                     62:                        break;
                     63:                }
                     64:                if ($row[1] !== $row['label']) {
                     65:                        printf("[007] Unexpected result row[1] = '%s', row[label] = '%s', [%d] %s\n",
                     66:                                $row[1], $row['label'], mysqli_errno($link), mysqli_error($link));
                     67:                        break;
                     68:                }
                     69: 
                     70:        }
                     71:        mysqli_free_result($res);
                     72: 
                     73:        if (!$res = mysqli_query($link, 'SELECT id, label FROM test')) {
                     74:                printf("[008] SELECT failed: [%d] %s\n", mysqli_errno($link), mysqli_errno($link));
                     75:        }
                     76: 
                     77:        while ($row = mysqli_fetch_array($res, MYSQLI_ASSOC)) {
                     78:                // overwrite results and check if the cache magic works
                     79:                $row['label'] = NULL;
                     80:        }
                     81:        mysqli_free_result($res);
                     82: 
                     83:        if (!$res = mysqli_query($link, 'SELECT count(*) AS num FROM test')) {
                     84:                printf("[009] SELECT failed: [%d] %s\n", mysqli_errno($link), mysqli_errno($link));
                     85:        }
                     86:        $row = mysqli_fetch_assoc($res);
                     87:        $num = $row['num'];
                     88:        mysqli_free_result($res);
                     89: 
                     90:        if (!$res = mysqli_query($link, 'SELECT id, label FROM test')) {
                     91:                printf("[010] SELECT failed: [%d] %s\n", mysqli_errno($link), mysqli_errno($link));
                     92:        }
                     93: 
                     94:        $i = 0;
                     95:        while ($row = mysqli_fetch_array($res, MYSQLI_NUM)) {
                     96:                // overwrite results and check if the cache magic works
                     97:                $row[0] = NULL;
                     98:                $i++;
                     99:        }
                    100:        mysqli_free_result($res);
                    101: 
                    102:        if ($i != $num)
                    103:                printf("[011] Expecting %d results, got %d results, [%d] %s\n",
                    104:                        $num, $i, mysqli_errno($link), mysqli_error($link));
                    105: 
                    106:        mysqli_close($link);
                    107: 
                    108:        print "done!";
                    109: ?>
                    110: --CLEAN--
                    111: <?php
                    112:        require_once("clean_table.inc");
                    113: ?>
                    114: --EXPECTF--
                    115: done!

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