FindCharacter converted to QueryDatabase

This commit is contained in:
Arthur Ice 2014-08-23 21:24:28 -07:00
parent 6b90f883cd
commit de47755320

View File

@ -199,46 +199,28 @@ bool Database::VerifyMailKey(std::string characterName, int IPAddress, std::stri
return !strcmp(row[0], combinedKey); return !strcmp(row[0], combinedKey);
} }
int Database::FindCharacter(const char *CharacterName) { int Database::FindCharacter(const char *characterName) {
char errbuf[MYSQL_ERRMSG_SIZE]; char *safeCharName = RemoveApostrophes(characterName);
char* query = 0; std::string query = StringFormat("SELECT `id` FROM `character_` WHERE `name`='%s' LIMIT 1", safeCharName);
MYSQL_RES *result; auto results = QueryDatabase(query);
MYSQL_ROW row; if (!results.Success()) {
_log(UCS__ERROR, "FindCharacter failed. %s %s", query.c_str(), results.ErrorMessage().c_str());
char *SafeCharName = RemoveApostrophes(CharacterName); safe_delete(safeCharName);
return -1;
if (!RunQuery(query,MakeAnyLenString(&query, "select `id` from `character_` where `name`='%s' limit 1", }
SafeCharName),errbuf,&result)){ safe_delete(safeCharName);
_log(UCS__ERROR, "FindCharacter failed. %s %s", query, errbuf);
safe_delete_array(query);
safe_delete_array(SafeCharName);
if (results.RowCount() != 1) {
_log(UCS__ERROR, "Bad result from FindCharacter query for character %s", characterName);
return -1; return -1;
} }
safe_delete_array(query); auto row = results.begin();
safe_delete_array(SafeCharName);
if (mysql_num_rows(result) != 1) { int characterID = atoi(row[0]);
_log(UCS__ERROR, "Bad result from FindCharacter query for character %s", CharacterName);
mysql_free_result(result);
return -1;
}
row = mysql_fetch_row(result);
int CharacterID = atoi(row[0]);
mysql_free_result(result);
return CharacterID;
return characterID;
} }
bool Database::GetVariable(const char* varname, char* varvalue, uint16 varvalue_len) { bool Database::GetVariable(const char* varname, char* varvalue, uint16 varvalue_len) {