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

1.1       misho       1: --TEST--
                      2: Interface of the class mysqli
                      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:        function dump_properties($mysqli) {
                     14: 
                     15:                printf("\nClass variables:\n");
                     16:                $variables = array_keys(get_class_vars(get_class($mysqli)));
                     17:                sort($variables);
                     18:                foreach ($variables as $k => $var) {
                     19:                        printf("%s = '%s'\n", $var, var_export(@$mysqli->$var, true));
                     20:                }
                     21: 
                     22:                printf("\nObject variables:\n");
                     23:                $variables = array_keys(get_object_vars($mysqli));
                     24:                foreach ($variables as $k => $var) {
                     25:                        printf("%s = '%s'\n", $var, var_export(@$mysqli->$var, true));
                     26:                }
                     27: 
                     28:                printf("\nMagic, magic properties:\n");
                     29: 
                     30:                assert(@mysqli_affected_rows($mysqli) === @$mysqli->affected_rows);
                     31:                printf("mysqli->affected_rows = '%s'/%s ('%s'/%s)\n",
                     32:                        @$mysqli->affected_rows, gettype(@$mysqli->affected_rows),
                     33:                        @mysqli_affected_rows($mysqli), gettype(@mysqli_affected_rows($mysqli)));
                     34: 
                     35:                assert(@mysqli_get_client_info() === @$mysqli->client_info);
                     36:                printf("mysqli->client_info = '%s'/%s ('%s'/%s)\n",
                     37:                        @$mysqli->client_info, gettype(@$mysqli->client_info),
                     38:                        @mysqli_get_client_info(), gettype(@mysqli_get_client_info()));
                     39: 
                     40:                assert(@mysqli_get_client_version() === @$mysqli->client_version);
                     41:                printf("mysqli->client_version =  '%s'/%s ('%s'/%s)\n",
                     42:                        @$mysqli->client_version, gettype(@$mysqli->client_version),
                     43:                        @mysqli_get_client_version(), gettype(@mysqli_get_client_version()));
                     44: 
                     45:                assert(@mysqli_errno($mysqli) === @$mysqli->errno);
                     46:                printf("mysqli->errno = '%s'/%s ('%s'/%s)\n",
                     47:                        @$mysqli->errno, gettype(@$mysqli->errno),
                     48: 
                     49:                        @mysqli_errno($mysqli), gettype(@mysqli_errno($mysqli)));
                     50: 
                     51:                assert(@mysqli_error($mysqli) === @$mysqli->error);
                     52:                printf("mysqli->error = '%s'/%s ('%s'/%s)\n",
                     53:                        @$mysqli->error, gettype(@$mysqli->error),
                     54:                        @mysqli_error($mysqli), gettype(@mysqli_error($mysqli)));
                     55: 
                     56:                assert(@mysqli_field_count($mysqli) === @$mysqli->field_count);
                     57:                printf("mysqli->field_count = '%s'/%s ('%s'/%s)\n",
                     58:                        @$mysqli->field_count, gettype(@$mysqli->field_count),
                     59:                        @mysqli_field_count($mysqli), gettype(@mysqli_field_count($mysqli)));
                     60: 
                     61:                assert(@mysqli_insert_id($mysqli) === @$mysqli->insert_id);
                     62:                printf("mysqli->insert_id = '%s'/%s ('%s'/%s)\n",
                     63:                        @$mysqli->insert_id, gettype(@$mysqli->insert_id),
                     64:                        @mysqli_insert_id($mysqli), gettype(@mysqli_insert_id($mysqli)));
                     65: 
                     66:                assert(@mysqli_sqlstate($mysqli) === @$mysqli->sqlstate);
                     67:                printf("mysqli->sqlstate = '%s'/%s ('%s'/%s)\n",
                     68:                        @$mysqli->sqlstate, gettype(@$mysqli->sqlstate),
                     69:                        @mysqli_sqlstate($mysqli), gettype(@mysqli_sqlstate($mysqli)));
                     70: 
                     71:                assert(@mysqli_stat($mysqli) === @$mysqli->sstat);
                     72:                printf("mysqli->stat = '%s'/%s ('%s'/%s)\n",
                     73:                        @$mysqli->stat, gettype(@$mysqli->stat),
                     74:                        @mysqli_stat($mysqli), gettype(@mysqli_stat($mysqli)));
                     75: 
                     76:                assert(@mysqli_get_host_info($mysqli) === @$mysqli->host_info);
                     77:                printf("mysqli->host_info = '%s'/%s ('%s'/%s)\n",
                     78:                        @$mysqli->host_info, gettype(@$mysqli->host_info),
                     79:                        @mysqli_get_host_info($mysqli), gettype(@mysqli_get_host_info($mysqli)));
                     80: 
                     81:                /* note that the data types are different */
                     82:                assert(@mysqli_info($mysqli) == @$mysqli->info);
                     83:                printf("mysqli->info = '%s'/%s ('%s'/%s)\n",
                     84:                        @$mysqli->info, gettype(@$mysqli->info),
                     85:                        @mysqli_info($mysqli), gettype(@mysqli_info($mysqli)));
                     86: 
                     87:                assert(@mysqli_thread_id($mysqli) > @$mysqli->thread_id);
                     88:                assert(gettype(@$mysqli->thread_id) == gettype(@mysqli_thread_id($mysqli)));
                     89:                printf("mysqli->thread_id = '%s'/%s ('%s'/%s)\n",
                     90:                        @$mysqli->thread_id, gettype(@$mysqli->thread_id),
                     91:                        @mysqli_thread_id($mysqli), gettype(@mysqli_thread_id($mysqli)));
                     92: 
                     93:                assert(@mysqli_get_proto_info($mysqli) === @$mysqli->protocol_version);
                     94:                printf("mysqli->protocol_version = '%s'/%s ('%s'/%s)\n",
                     95:                        @$mysqli->protocol_version, gettype(@$mysqli->protocol_version),
                     96:                        @mysqli_get_proto_info($mysqli), gettype(@mysqli_get_proto_info($mysqli)));
                     97: 
                     98:                assert(@mysqli_get_server_info($mysqli) === @$mysqli->server_info);
                     99:                printf("mysqli->server_info = '%s'/%s ('%s'/%s)\n",
                    100:                        @$mysqli->server_info, gettype(@$mysqli->server_info),
                    101:                        @mysqli_get_server_info($mysqli), gettype(@mysqli_get_server_info($mysqli)));
                    102: 
                    103:                assert(@mysqli_get_server_version($mysqli) === @$mysqli->server_version);
                    104:                printf("mysqli->server_version = '%s'/%s ('%s'/%s)\n",
                    105:                        @$mysqli->server_version, gettype(@$mysqli->server_version),
                    106:                        @mysqli_get_server_version($mysqli), gettype(@mysqli_get_server_version($mysqli)));
                    107: 
                    108:                assert(@mysqli_warning_count($mysqli) === @$mysqli->warning_count);
                    109:                printf("mysqli->warning_count = '%s'/%s ('%s'/%s)\n",
                    110:                        @$mysqli->warning_count, gettype(@$mysqli->warning_count),
                    111:                        @mysqli_warning_count($mysqli), gettype(@mysqli_warning_count($mysqli)));
                    112: 
                    113:                printf("\nAccess to undefined properties:\n");
                    114:                printf("mysqli->unknown = '%s'\n", @$mysqli->unknown);
                    115: 
                    116:                @$mysqli->unknown = 13;
                    117:                printf("setting mysqli->unknown, @mysqli_unknown = '%s'\n", @$mysqli->unknown);
                    118: 
                    119:                $unknown = 'friday';
                    120:                @$mysqli->unknown = $unknown;
                    121:                printf("setting mysqli->unknown, @mysqli_unknown = '%s'\n", @$mysqli->unknown);
                    122: 
                    123:                printf("\nAccess hidden properties for MYSLQI_STATUS_INITIALIZED (TODO documentation):\n");
                    124:                assert(@mysqli_connect_error() === @$mysqli->connect_error);
                    125:                printf("mysqli->connect_error = '%s'/%s ('%s'/%s)\n",
                    126:                        @$mysqli->connect_error, gettype(@$mysqli->connect_error),
                    127:                        @mysqli_connect_error(), gettype(@mysqli_connect_error()));
                    128: 
                    129:                assert(@mysqli_connect_errno() === @$mysqli->connect_errno);
                    130:                printf("mysqli->connect_errno = '%s'/%s ('%s'/%s)\n",
                    131:                        @$mysqli->connect_errno, gettype(@$mysqli->connect_errno),
                    132:                        @mysqli_connect_errno(), gettype(@mysqli_connect_errno()));
                    133:        }
                    134: 
                    135:        printf("Without RS\n");
                    136:        $mysqli = @new mysqli($host, $user, $passwd . "invalid", $db, $port, $socket);
                    137:        dump_properties($mysqli);
                    138: 
                    139:        printf("With RS\n");
                    140:        $mysqli = @new mysqli($host, $user, $passwd . "invalid", $db, $port, $socket);
                    141:        $res = @$mysqli->query("SELECT * FROM test");
                    142:        dump_properties($mysqli);
                    143: 
                    144:        print "done!";
                    145: ?>
                    146: --CLEAN--
                    147: <?php require_once("clean_table.inc"); ?>
                    148: --EXPECTF--
                    149: Without RS
                    150: 
                    151: Class variables:
                    152: affected_rows = 'NULL'
                    153: client_info = 'NULL'
                    154: client_version = '%d'
                    155: connect_errno = '%d'
                    156: connect_error = '%s'
                    157: errno = 'NULL'
                    158: error = 'NULL'
                    159: field_count = 'NULL'
                    160: host_info = 'NULL'
                    161: info = 'NULL'
                    162: insert_id = 'NULL'
                    163: protocol_version = 'NULL'
                    164: server_info = 'NULL'
                    165: server_version = 'NULL'
                    166: sqlstate = 'NULL'
                    167: stat = 'NULL'
                    168: thread_id = 'NULL'
                    169: warning_count = 'NULL'
                    170: 
                    171: Object variables:
                    172: affected_rows = 'NULL'
                    173: client_info = 'NULL'
                    174: client_version = '%d'
                    175: connect_errno = '%d'
                    176: connect_error = '%s'
                    177: errno = 'NULL'
                    178: error = 'NULL'
                    179: field_count = 'NULL'
                    180: host_info = 'NULL'
                    181: info = 'NULL'
                    182: insert_id = 'NULL'
                    183: server_info = 'NULL'
                    184: server_version = 'NULL'
                    185: stat = 'NULL'
                    186: sqlstate = 'NULL'
                    187: protocol_version = 'NULL'
                    188: thread_id = 'NULL'
                    189: warning_count = 'NULL'
                    190: 
                    191: Magic, magic properties:
                    192: mysqli->affected_rows = ''/NULL (''/NULL)
                    193: 
                    194: Warning: assert(): Assertion failed in %s on line %d
                    195: mysqli->client_info = ''/NULL ('%s'/string)
                    196: mysqli->client_version =  '%d'/integer ('%d'/integer)
                    197: mysqli->errno = ''/NULL (''/NULL)
                    198: mysqli->error = ''/NULL (''/NULL)
                    199: mysqli->field_count = ''/NULL (''/NULL)
                    200: mysqli->insert_id = ''/NULL (''/NULL)
                    201: mysqli->sqlstate = ''/NULL (''/NULL)
                    202: mysqli->stat = ''/NULL (''/NULL)
                    203: mysqli->host_info = ''/NULL (''/NULL)
                    204: mysqli->info = ''/NULL (''/NULL)
                    205: 
                    206: Warning: assert(): Assertion failed in %s on line 78
                    207: mysqli->thread_id = ''/NULL (''/NULL)
                    208: mysqli->protocol_version = ''/NULL (''/NULL)
                    209: mysqli->server_info = ''/NULL (''/NULL)
                    210: mysqli->server_version = ''/NULL (''/NULL)
                    211: mysqli->warning_count = ''/NULL (''/NULL)
                    212: 
                    213: Access to undefined properties:
                    214: mysqli->unknown = ''
                    215: setting mysqli->unknown, @mysqli_unknown = '13'
                    216: setting mysqli->unknown, @mysqli_unknown = 'friday'
                    217: 
                    218: Access hidden properties for MYSLQI_STATUS_INITIALIZED (TODO documentation):
                    219: mysqli->connect_error = '%s'/string ('%s'/string)
                    220: mysqli->connect_errno = '%d'/integer ('%d'/integer)
                    221: With RS
                    222: 
                    223: Class variables:
                    224: affected_rows = 'NULL'
                    225: client_info = 'NULL'
                    226: client_version = '%d'
                    227: connect_errno = '%d'
                    228: connect_error = '%s'
                    229: errno = 'NULL'
                    230: error = 'NULL'
                    231: field_count = 'NULL'
                    232: host_info = 'NULL'
                    233: info = 'NULL'
                    234: insert_id = 'NULL'
                    235: protocol_version = 'NULL'
                    236: server_info = 'NULL'
                    237: server_version = 'NULL'
                    238: sqlstate = 'NULL'
                    239: stat = 'NULL'
                    240: thread_id = 'NULL'
                    241: warning_count = 'NULL'
                    242: 
                    243: Object variables:
                    244: affected_rows = 'NULL'
                    245: client_info = 'NULL'
                    246: client_version = '%d'
                    247: connect_errno = '%d'
                    248: connect_error = '%s'
                    249: errno = 'NULL'
                    250: error = 'NULL'
                    251: field_count = 'NULL'
                    252: host_info = 'NULL'
                    253: info = 'NULL'
                    254: insert_id = 'NULL'
                    255: server_info = 'NULL'
                    256: server_version = 'NULL'
                    257: stat = 'NULL'
                    258: sqlstate = 'NULL'
                    259: protocol_version = 'NULL'
                    260: thread_id = 'NULL'
                    261: warning_count = 'NULL'
                    262: 
                    263: Magic, magic properties:
                    264: mysqli->affected_rows = ''/NULL (''/NULL)
                    265: 
                    266: Warning: assert(): Assertion failed in %s on line %s
                    267: mysqli->client_info = ''/NULL ('%s'/string)
                    268: mysqli->client_version =  '%d'/integer ('%d'/integer)
                    269: mysqli->errno = ''/NULL (''/NULL)
                    270: mysqli->error = ''/NULL (''/NULL)
                    271: mysqli->field_count = ''/NULL (''/NULL)
                    272: mysqli->insert_id = ''/NULL (''/NULL)
                    273: mysqli->sqlstate = ''/NULL (''/NULL)
                    274: mysqli->stat = ''/NULL (''/NULL)
                    275: mysqli->host_info = ''/NULL (''/NULL)
                    276: mysqli->info = ''/NULL (''/NULL)
                    277: 
                    278: Warning: assert(): Assertion failed in %s on line %d
                    279: mysqli->thread_id = ''/NULL (''/NULL)
                    280: mysqli->protocol_version = ''/NULL (''/NULL)
                    281: mysqli->server_info = ''/NULL (''/NULL)
                    282: mysqli->server_version = ''/NULL (''/NULL)
                    283: mysqli->warning_count = ''/NULL (''/NULL)
                    284: 
                    285: Access to undefined properties:
                    286: mysqli->unknown = ''
                    287: setting mysqli->unknown, @mysqli_unknown = '13'
                    288: setting mysqli->unknown, @mysqli_unknown = 'friday'
                    289: 
                    290: Access hidden properties for MYSLQI_STATUS_INITIALIZED (TODO documentation):
                    291: mysqli->connect_error = '%s'/string ('%s'/string)
                    292: mysqli->connect_errno = '%d'/integer ('%d'/integer)
                    293: done!

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