diff --git a/common/database.cpp b/common/database.cpp index 581f4c082..2dca2ba20 100644 --- a/common/database.cpp +++ b/common/database.cpp @@ -343,15 +343,9 @@ bool Database::ReserveName(uint32 account_id, char* name) { int guild_id = RuleI(Character, DefaultGuild); if (guild_id != 0) { - int char_id=-1; - query = StringFormat("select `id` FROM `character_data` WHERE `name` = '%s'", name); - results = QueryDatabase(query); - for (auto row = results.begin(); row != results.end(); ++row) { - char_id = atoi(row[0]); - } - - if (char_id > -1) { - query = StringFormat("INSERT INTO `guild_members` SET `char_id` = %i, `guild_id` = '%i'", char_id, guild_id); + int character_id=results.LastInsertedID(); + if (character_id > -1) { + query = StringFormat("INSERT INTO `guild_members` SET `char_id` = %i, `guild_id` = '%i'", character_id, guild_id); results = QueryDatabase(query); if (!results.Success() || results.ErrorMessage() != ""){ LogInfo("Could not put character [{}] into default Guild", name);