GetInstanceID converted to QueryDatabase

This commit is contained in:
Arthur Ice 2014-07-06 14:52:40 -07:00 committed by Arthur Ice
parent c160059612
commit 41660240fb

View File

@ -2463,36 +2463,21 @@ uint16 Database::GetInstanceVersion(uint16 instance_id)
uint16 Database::GetInstanceID(const char* zone, uint32 charid, int16 version)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
MYSQL_RES *result;
MYSQL_ROW row;
uint16 ret;
char *query = nullptr;
if (RunQuery(query, MakeAnyLenString(&query, "SELECT instance_list.id FROM instance_list, instance_list_player "
"WHERE instance_list.zone=%u AND instance_list.version=%u AND instance_list.id=instance_list_player.id AND "
"instance_list_player.charid=%u LIMIT 1;", GetZoneID(zone), version, charid, charid), errbuf, &result))
{
safe_delete_array(query);
if (mysql_num_rows(result) != 0)
{
row = mysql_fetch_row(result);
ret = atoi(row[0]);
mysql_free_result(result);
return ret;
}
else
{
mysql_free_result(result);
return 0;
}
}
else
{
safe_delete_array(query);
auto results = QueryDatabase(query, MakeAnyLenString(&query, "SELECT instance_list.id FROM instance_list, instance_list_player "
"WHERE instance_list.zone=%u AND instance_list.version=%u AND instance_list.id=instance_list_player.id AND "
"instance_list_player.charid=%u LIMIT 1;", GetZoneID(zone), version, charid, charid));
safe_delete_array(query);
if (!results.Success())
return 0;
}
return 0;
if (results.RowCount() == 0)
return 0;
auto row = results.begin();
return atoi(row[0]);
}
uint16 Database::GetInstanceID(uint32 zone, uint32 charid, int16 version)