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