Annotation of embedaddon/php/ext/mysqli/tests/mysqli_fetch_assoc_zerofill.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: mysqli_fetch_assoc() - ZEROFILL
        !             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_once('connect.inc');
        !            12:        require_once('table.inc');
        !            13: 
        !            14:        function zerofill($offset, $link, $datatype, $insert = 1) {
        !            15: 
        !            16:                mysqli_query($link, 'ALTER TABLE test DROP zero');
        !            17:                $sql = sprintf('ALTER TABLE test ADD zero %s UNSIGNED ZEROFILL', $datatype);
        !            18:                if (!mysqli_query($link, $sql)) {
        !            19:                        // no worries - server might not support it
        !            20:                        return true;
        !            21:                }
        !            22: 
        !            23:                if (!mysqli_query($link, sprintf('UPDATE test SET zero = %s', $insert))) {
        !            24:                        printf("[%03d] UPDATE failed, [%d] %s\n",
        !            25:                                $offset, mysqli_errno($link), mysqli_error($link));
        !            26:                        return false;
        !            27:                }
        !            28: 
        !            29:                if (!($res = mysqli_query($link, 'SELECT zero FROM test LIMIT 1'))) {
        !            30:                        printf("[%03d] SELECT failed, [%d] %s\n",
        !            31:                                $offset, mysqli_errno($link), mysqli_error($link));
        !            32:                        return false;
        !            33:                }
        !            34: 
        !            35:                $row = mysqli_fetch_assoc($res);
        !            36:                $meta = mysqli_fetch_fields($res);
        !            37:                mysqli_free_result($res);
        !            38:                $meta = $meta[0];
        !            39:                $length = $meta->length;
        !            40:                if ($length > strlen($insert)) {
        !            41: 
        !            42:                        $expected = str_repeat('0', $length - strlen($insert));
        !            43:                        $expected .= $insert;
        !            44:                        if ($expected !== $row['zero']) {
        !            45:                                printf("[%03d] Expecting '%s' got '%s'\n", $offset, $expected, $row['zero']);
        !            46:                                return false;
        !            47:                        }
        !            48: 
        !            49:                } else if ($length <= 1) {
        !            50:                        printf("[%03d] Length reported is too small to run test\n", $offset);
        !            51:                        return false;
        !            52:                }
        !            53: 
        !            54:                return true;
        !            55:        }
        !            56: 
        !            57:        zerofill(2, $link, 'TINYINT');
        !            58:        zerofill(3, $link, 'SMALLINT');
        !            59:        zerofill(4, $link, 'MEDIUMINT');
        !            60:        zerofill(5, $link, 'INT');
        !            61:        zerofill(6, $link, 'INTEGER');
        !            62:        zerofill(7, $link, 'BIGINT');
        !            63:        zerofill(8, $link, 'FLOAT');
        !            64:        zerofill(9, $link, 'DOUBLE');
        !            65:        zerofill(10, $link, 'DOUBLE PRECISION');
        !            66:        zerofill(11, $link, 'DECIMAL');
        !            67:        zerofill(12, $link, 'DEC');
        !            68: 
        !            69:        mysqli_close($link);
        !            70: 
        !            71:        print "done!";
        !            72: ?>
        !            73: --CLEAN--
        !            74: <?php
        !            75:        require_once("clean_table.inc");
        !            76: ?>
        !            77: --EXPECTF--
        !            78: done!

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