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

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_get_host_info($mysqli) === @$mysqli->host_info);
                     72:                printf("mysqli->host_info = '%s'/%s ('%s'/%s)\n",
                     73:                        @$mysqli->host_info, gettype(@$mysqli->host_info),
                     74:                        @mysqli_get_host_info($mysqli), gettype(@mysqli_get_host_info($mysqli)));
                     75: 
                     76:                /* note that the data types are different */
                     77:                assert(@mysqli_info($mysqli) == @$mysqli->info);
                     78:                printf("mysqli->info = '%s'/%s ('%s'/%s)\n",
                     79:                        @$mysqli->info, gettype(@$mysqli->info),
                     80:                        @mysqli_info($mysqli), gettype(@mysqli_info($mysqli)));
                     81: 
                     82:                assert(@mysqli_thread_id($mysqli) > @$mysqli->thread_id);
                     83:                assert(gettype(@$mysqli->thread_id) == gettype(@mysqli_thread_id($mysqli)));
                     84:                printf("mysqli->thread_id = '%s'/%s ('%s'/%s)\n",
                     85:                        @$mysqli->thread_id, gettype(@$mysqli->thread_id),
                     86:                        @mysqli_thread_id($mysqli), gettype(@mysqli_thread_id($mysqli)));
                     87: 
                     88:                assert(@mysqli_get_proto_info($mysqli) === @$mysqli->protocol_version);
                     89:                printf("mysqli->protocol_version = '%s'/%s ('%s'/%s)\n",
                     90:                        @$mysqli->protocol_version, gettype(@$mysqli->protocol_version),
                     91:                        @mysqli_get_proto_info($mysqli), gettype(@mysqli_get_proto_info($mysqli)));
                     92: 
                     93:                assert(@mysqli_get_server_info($mysqli) === @$mysqli->server_info);
                     94:                printf("mysqli->server_info = '%s'/%s ('%s'/%s)\n",
                     95:                        @$mysqli->server_info, gettype(@$mysqli->server_info),
                     96:                        @mysqli_get_server_info($mysqli), gettype(@mysqli_get_server_info($mysqli)));
                     97: 
                     98:                assert(@mysqli_get_server_version($mysqli) === @$mysqli->server_version);
                     99:                printf("mysqli->server_version = '%s'/%s ('%s'/%s)\n",
                    100:                        @$mysqli->server_version, gettype(@$mysqli->server_version),
                    101:                        @mysqli_get_server_version($mysqli), gettype(@mysqli_get_server_version($mysqli)));
                    102: 
                    103:                assert(@mysqli_warning_count($mysqli) === @$mysqli->warning_count);
                    104:                printf("mysqli->warning_count = '%s'/%s ('%s'/%s)\n",
                    105:                        @$mysqli->warning_count, gettype(@$mysqli->warning_count),
                    106:                        @mysqli_warning_count($mysqli), gettype(@mysqli_warning_count($mysqli)));
                    107: 
                    108:                printf("\nAccess to undefined properties:\n");
                    109:                printf("mysqli->unknown = '%s'\n", @$mysqli->unknown);
                    110: 
                    111:                @$mysqli->unknown = 13;
                    112:                printf("setting mysqli->unknown, @mysqli_unknown = '%s'\n", @$mysqli->unknown);
                    113: 
                    114:                $unknown = 'friday';
                    115:                @$mysqli->unknown = $unknown;
                    116:                printf("setting mysqli->unknown, @mysqli_unknown = '%s'\n", @$mysqli->unknown);
                    117: 
                    118:                printf("\nAccess hidden properties for MYSLQI_STATUS_INITIALIZED (TODO documentation):\n");
                    119:                assert(@mysqli_connect_error() === @$mysqli->connect_error);
                    120:                printf("mysqli->connect_error = '%s'/%s ('%s'/%s)\n",
                    121:                        @$mysqli->connect_error, gettype(@$mysqli->connect_error),
                    122:                        @mysqli_connect_error(), gettype(@mysqli_connect_error()));
                    123: 
                    124:                assert(@mysqli_connect_errno() === @$mysqli->connect_errno);
                    125:                printf("mysqli->connect_errno = '%s'/%s ('%s'/%s)\n",
                    126:                        @$mysqli->connect_errno, gettype(@$mysqli->connect_errno),
                    127:                        @mysqli_connect_errno(), gettype(@mysqli_connect_errno()));
                    128:        }
                    129: 
                    130:        printf("Without RS\n");
                    131:        $mysqli = @new mysqli($host, $user, $passwd . "invalid", $db, $port, $socket);
                    132:        dump_properties($mysqli);
                    133: 
                    134:        printf("With RS\n");
                    135:        $mysqli = @new mysqli($host, $user, $passwd . "invalid", $db, $port, $socket);
                    136:        $res = @$mysqli->query("SELECT * FROM test");
                    137:        dump_properties($mysqli);
                    138: 
                    139:        print "done!";
                    140: ?>
                    141: --CLEAN--
                    142: <?php require_once("clean_table.inc"); ?>
                    143: --EXPECTF--
                    144: Without RS
                    145: 
                    146: Class variables:
                    147: affected_rows = 'NULL'
                    148: client_info = 'NULL'
1.1.1.2 ! misho     149: client_version = '%s'
        !           150: connect_errno = '%s'
        !           151: connect_error = ''%s'
1.1       misho     152: errno = 'NULL'
                    153: error = 'NULL'
1.1.1.2 ! misho     154: error_list = 'NULL'
1.1       misho     155: field_count = 'NULL'
                    156: host_info = 'NULL'
                    157: info = 'NULL'
                    158: insert_id = 'NULL'
                    159: protocol_version = 'NULL'
                    160: server_info = 'NULL'
                    161: server_version = 'NULL'
                    162: sqlstate = 'NULL'
                    163: stat = 'NULL'
                    164: thread_id = 'NULL'
                    165: warning_count = 'NULL'
                    166: 
                    167: Object variables:
                    168: affected_rows = 'NULL'
                    169: client_info = 'NULL'
1.1.1.2 ! misho     170: client_version = '%s'
        !           171: connect_errno = '%s'
1.1       misho     172: connect_error = '%s'
                    173: errno = 'NULL'
                    174: error = 'NULL'
1.1.1.2 ! misho     175: error_list = 'NULL'
1.1       misho     176: field_count = 'NULL'
                    177: host_info = 'NULL'
                    178: info = 'NULL'
                    179: insert_id = 'NULL'
                    180: server_info = 'NULL'
                    181: server_version = 'NULL'
                    182: stat = 'NULL'
                    183: sqlstate = 'NULL'
                    184: protocol_version = 'NULL'
                    185: thread_id = 'NULL'
                    186: warning_count = 'NULL'
                    187: 
                    188: Magic, magic properties:
                    189: mysqli->affected_rows = ''/NULL (''/NULL)
                    190: 
                    191: Warning: assert(): Assertion failed in %s on line %d
1.1.1.2 ! misho     192: mysqli->client_info = ''/NULL ('%s'/%s)
        !           193: mysqli->client_version =  '%s'/integer ('%s'/integer)
1.1       misho     194: mysqli->errno = ''/NULL (''/NULL)
                    195: mysqli->error = ''/NULL (''/NULL)
                    196: mysqli->field_count = ''/NULL (''/NULL)
                    197: mysqli->insert_id = ''/NULL (''/NULL)
                    198: mysqli->sqlstate = ''/NULL (''/NULL)
                    199: mysqli->host_info = ''/NULL (''/NULL)
                    200: mysqli->info = ''/NULL (''/NULL)
                    201: 
1.1.1.2 ! misho     202: Warning: assert(): Assertion failed in %s on line %d
1.1       misho     203: mysqli->thread_id = ''/NULL (''/NULL)
                    204: mysqli->protocol_version = ''/NULL (''/NULL)
                    205: mysqli->server_info = ''/NULL (''/NULL)
                    206: mysqli->server_version = ''/NULL (''/NULL)
                    207: mysqli->warning_count = ''/NULL (''/NULL)
                    208: 
                    209: Access to undefined properties:
                    210: mysqli->unknown = ''
                    211: setting mysqli->unknown, @mysqli_unknown = '13'
                    212: setting mysqli->unknown, @mysqli_unknown = 'friday'
                    213: 
                    214: Access hidden properties for MYSLQI_STATUS_INITIALIZED (TODO documentation):
1.1.1.2 ! misho     215: mysqli->connect_error = '%s'/%s)
        !           216: mysqli->connect_errno = '%s'/integer ('%s'/integer)
1.1       misho     217: With RS
                    218: 
                    219: Class variables:
                    220: affected_rows = 'NULL'
                    221: client_info = 'NULL'
1.1.1.2 ! misho     222: client_version = '%s'
        !           223: connect_errno = '%s'
1.1       misho     224: connect_error = '%s'
                    225: errno = 'NULL'
                    226: error = 'NULL'
1.1.1.2 ! misho     227: error_list = 'NULL'
1.1       misho     228: field_count = 'NULL'
                    229: host_info = 'NULL'
                    230: info = 'NULL'
                    231: insert_id = 'NULL'
                    232: protocol_version = 'NULL'
                    233: server_info = 'NULL'
                    234: server_version = 'NULL'
                    235: sqlstate = 'NULL'
                    236: stat = 'NULL'
                    237: thread_id = 'NULL'
                    238: warning_count = 'NULL'
                    239: 
                    240: Object variables:
                    241: affected_rows = 'NULL'
                    242: client_info = 'NULL'
1.1.1.2 ! misho     243: client_version = '%s'
        !           244: connect_errno = '%s'
1.1       misho     245: connect_error = '%s'
                    246: errno = 'NULL'
                    247: error = 'NULL'
1.1.1.2 ! misho     248: error_list = 'NULL'
1.1       misho     249: field_count = 'NULL'
                    250: host_info = 'NULL'
                    251: info = 'NULL'
                    252: insert_id = 'NULL'
                    253: server_info = 'NULL'
                    254: server_version = 'NULL'
                    255: stat = 'NULL'
                    256: sqlstate = 'NULL'
                    257: protocol_version = 'NULL'
                    258: thread_id = 'NULL'
                    259: warning_count = 'NULL'
                    260: 
                    261: Magic, magic properties:
                    262: mysqli->affected_rows = ''/NULL (''/NULL)
                    263: 
1.1.1.2 ! misho     264: Warning: assert(): Assertion failed in %s on line %d
        !           265: mysqli->client_info = ''/NULL ('%s'/%s)
        !           266: mysqli->client_version =  '%s'/integer ('%s'/integer)
1.1       misho     267: mysqli->errno = ''/NULL (''/NULL)
                    268: mysqli->error = ''/NULL (''/NULL)
                    269: mysqli->field_count = ''/NULL (''/NULL)
                    270: mysqli->insert_id = ''/NULL (''/NULL)
                    271: mysqli->sqlstate = ''/NULL (''/NULL)
                    272: mysqli->host_info = ''/NULL (''/NULL)
                    273: mysqli->info = ''/NULL (''/NULL)
                    274: 
                    275: Warning: assert(): Assertion failed in %s on line %d
                    276: mysqli->thread_id = ''/NULL (''/NULL)
                    277: mysqli->protocol_version = ''/NULL (''/NULL)
                    278: mysqli->server_info = ''/NULL (''/NULL)
                    279: mysqli->server_version = ''/NULL (''/NULL)
                    280: mysqli->warning_count = ''/NULL (''/NULL)
                    281: 
                    282: Access to undefined properties:
                    283: mysqli->unknown = ''
                    284: setting mysqli->unknown, @mysqli_unknown = '13'
                    285: setting mysqli->unknown, @mysqli_unknown = 'friday'
                    286: 
                    287: Access hidden properties for MYSLQI_STATUS_INITIALIZED (TODO documentation):
1.1.1.2 ! misho     288: mysqli->connect_error = '%s'/%s)
        !           289: mysqli->connect_errno = '%s'/integer ('%s'/integer)
1.1       misho     290: done!

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