/* * ============================================================================= * Filename bug44159.cpp * Test case for bug: #44159 mysqli_fetch_fields returns wrong orgtable and * orgname for a particular query * ============================================================================= */ #include #include #include #define DB_HOST "localhost" #define DB_USER "root" #define DB_PASSW "" #define DB_NAME "test" #define DB_PORT 3306 #define DB_UNIX_SOCKET NULL #define SELECT_QUERY "SELECT * FROM vw_downls_fichs" int main( void ) { MYSQL mysql; MYSQL_RES *result; unsigned int num_fields; unsigned int i; MYSQL_FIELD *fields; mysql_init( &mysql ); if ( !mysql_real_connect( &mysql,DB_HOST,DB_USER,DB_PASSW,DB_NAME,DB_PORT,DB_UNIX_SOCKET,0 ) ) { printf("Error: %s\n",mysql_error(&mysql)); return 0; } else printf("Server: %s Client: %s\n\n",mysql_get_server_info(&mysql),mysql_get_client_info()); if (mysql_query( &mysql, SELECT_QUERY) ) { printf("Error (query): %s\n", mysql_error( &mysql )); mysql_close( &mysql ); return 0; } result = mysql_store_result(&mysql); num_fields = mysql_num_fields(result); fields = mysql_fetch_fields(result); for(i = 0; i < num_fields; i++) { printf("NAME:%s: ORGNAME: %s ORGTABLE: %s\n",fields[i].name, fields[i].org_name, fields[i].org_table ); } mysql_free_result(result); mysql_close(&mysql); return 1; }