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

1.1     ! misho       1: --TEST--
        !             2: mysqli_stmt_get_result() - meta data, field info
        !             3: --SKIPIF--
        !             4: <?php
        !             5: require_once('skipif.inc');
        !             6: require_once('skipifemb.inc');
        !             7: require_once('skipifconnectfailure.inc');
        !             8: 
        !             9: if (!function_exists('mysqli_stmt_get_result'))
        !            10:        die('skip mysqli_stmt_get_result not available');
        !            11: ?>
        !            12: --FILE--
        !            13: <?php
        !            14:        require('table.inc');
        !            15:        $charsets = my_get_charsets($link);
        !            16: 
        !            17:        if (!($stmt = mysqli_stmt_init($link)) ||
        !            18:                !mysqli_stmt_prepare($stmt, "SELECT id, label, id + 1 as _id,  concat(label, '_') ___label FROM test ORDER BY id ASC LIMIT 3") ||
        !            19:                !mysqli_stmt_execute($stmt))
        !            20:                printf("[001] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
        !            21: 
        !            22:        if (!is_object($res = mysqli_stmt_get_result($stmt)) || 'mysqli_result' != get_class($res)) {
        !            23:                printf("[002] Expecting object/mysqli_result got %s/%s, [%d] %s\n",
        !            24:                        gettype($res), $res, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
        !            25:        }
        !            26: 
        !            27:        if (!is_object($res_meta = mysqli_stmt_result_metadata($stmt)) ||
        !            28:                'mysqli_result' != get_class($res_meta)) {
        !            29:                printf("[003] Expecting object/mysqli_result got %s/%s, [%d] %s\n",
        !            30:                        gettype($res), $res, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
        !            31:        }
        !            32: 
        !            33:        $i = 0;
        !            34:        while ($field = $res->fetch_field()) {
        !            35:                var_dump($field);
        !            36:                $i++;
        !            37:                if (2 == $i) {
        !            38:                        /*
        !            39:                        Label column, result set charset.
        !            40:                        All of the following columns are "too hot" - too server dependent
        !            41:                        */
        !            42:                        if ($field->charsetnr != $charsets['results']['nr']) {
        !            43:                                printf("[004] Expecting charset %s/%d got %d\n",
        !            44:                                        $charsets['results']['charset'],
        !            45:                                        $charsets['results']['nr'], $field->charsetnr);
        !            46:                        }
        !            47:                        if ($field->length != (1 * $charsets['results']['maxlen'])) {
        !            48:                                printf("[005] Expecting length %d got %d\n",
        !            49:                                        $charsets['results']['maxlen'],
        !            50:                                        $field->max_length);
        !            51:                        }
        !            52:                }
        !            53:        }
        !            54: 
        !            55:        mysqli_stmt_close($stmt);
        !            56:        mysqli_close($link);
        !            57:        print "done!";
        !            58: ?>
        !            59: --CLEAN--
        !            60: <?php
        !            61:        require_once("clean_table.inc");
        !            62: ?>
        !            63: --EXPECTF--
        !            64: object(stdClass)#%d (13) {
        !            65:   [%u|b%"name"]=>
        !            66:   %unicode|string%(2) "id"
        !            67:   [%u|b%"orgname"]=>
        !            68:   %unicode|string%(2) "id"
        !            69:   [%u|b%"table"]=>
        !            70:   %unicode|string%(4) "test"
        !            71:   [%u|b%"orgtable"]=>
        !            72:   %unicode|string%(4) "test"
        !            73:   [%u|b%"def"]=>
        !            74:   %unicode|string%(0) ""
        !            75:   [%u|b%"db"]=>
        !            76:   %unicode|string%(%d) "%s"
        !            77:   [%u|b%"catalog"]=>
        !            78:   %unicode|string%(%d) "%s"
        !            79:   [%u|b%"max_length"]=>
        !            80:   int(0)
        !            81:   [%u|b%"length"]=>
        !            82:   int(11)
        !            83:   [%u|b%"charsetnr"]=>
        !            84:   int(63)
        !            85:   [%u|b%"flags"]=>
        !            86:   int(49155)
        !            87:   [%u|b%"type"]=>
        !            88:   int(3)
        !            89:   [%u|b%"decimals"]=>
        !            90:   int(0)
        !            91: }
        !            92: object(stdClass)#%d (13) {
        !            93:   [%u|b%"name"]=>
        !            94:   %unicode|string%(5) "label"
        !            95:   [%u|b%"orgname"]=>
        !            96:   %unicode|string%(5) "label"
        !            97:   [%u|b%"table"]=>
        !            98:   %unicode|string%(4) "test"
        !            99:   [%u|b%"orgtable"]=>
        !           100:   %unicode|string%(4) "test"
        !           101:   [%u|b%"def"]=>
        !           102:   %unicode|string%(0) ""
        !           103:   [%u|b%"db"]=>
        !           104:   %unicode|string%(%d) "%s"
        !           105:   [%u|b%"catalog"]=>
        !           106:   %unicode|string%(%d) "%s"
        !           107:   [%u|b%"max_length"]=>
        !           108:   int(%d)
        !           109:   [%u|b%"length"]=>
        !           110:   int(%d)
        !           111:   [%u|b%"charsetnr"]=>
        !           112:   int(%d)
        !           113:   [%u|b%"flags"]=>
        !           114:   int(0)
        !           115:   [%u|b%"type"]=>
        !           116:   int(254)
        !           117:   [%u|b%"decimals"]=>
        !           118:   int(0)
        !           119: }
        !           120: object(stdClass)#%d (13) {
        !           121:   [%u|b%"name"]=>
        !           122:   %unicode|string%(3) "_id"
        !           123:   [%u|b%"orgname"]=>
        !           124:   %unicode|string%(0) ""
        !           125:   [%u|b%"table"]=>
        !           126:   %unicode|string%(0) ""
        !           127:   [%u|b%"orgtable"]=>
        !           128:   %unicode|string%(0) ""
        !           129:   [%u|b%"def"]=>
        !           130:   %unicode|string%(0) ""
        !           131:   [%u|b%"db"]=>
        !           132:   %unicode|string%(0) ""
        !           133:   [%u|b%"catalog"]=>
        !           134:   %unicode|string%(%d) "%s"
        !           135:   [%u|b%"max_length"]=>
        !           136:   int(0)
        !           137:   [%u|b%"length"]=>
        !           138:   int(%d)
        !           139:   [%u|b%"charsetnr"]=>
        !           140:   int(63)
        !           141:   [%u|b%"flags"]=>
        !           142:   int(32897)
        !           143:   [%u|b%"type"]=>
        !           144:   int(8)
        !           145:   [%u|b%"decimals"]=>
        !           146:   int(0)
        !           147: }
        !           148: object(stdClass)#%d (13) {
        !           149:   [%u|b%"name"]=>
        !           150:   %unicode|string%(8) "___label"
        !           151:   [%u|b%"orgname"]=>
        !           152:   %unicode|string%(0) ""
        !           153:   [%u|b%"table"]=>
        !           154:   %unicode|string%(0) ""
        !           155:   [%u|b%"orgtable"]=>
        !           156:   %unicode|string%(0) ""
        !           157:   [%u|b%"def"]=>
        !           158:   %unicode|string%(0) ""
        !           159:   [%u|b%"db"]=>
        !           160:   %unicode|string%(0) ""
        !           161:   [%u|b%"catalog"]=>
        !           162:   %unicode|string%(%d) "%s"
        !           163:   [%u|b%"max_length"]=>
        !           164:   int(%d)
        !           165:   [%u|b%"length"]=>
        !           166:   int(%d)
        !           167:   [%u|b%"charsetnr"]=>
        !           168:   int(%d)
        !           169:   [%u|b%"flags"]=>
        !           170:   int(0)
        !           171:   [%u|b%"type"]=>
        !           172:   int(253)
        !           173:   [%u|b%"decimals"]=>
        !           174:   int(31)
        !           175: }
        !           176: done!

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