diff options
Diffstat (limited to 'src/account-server/storage.cpp')
-rw-r--r-- | src/account-server/storage.cpp | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/src/account-server/storage.cpp b/src/account-server/storage.cpp index 8876cd4b..c39bfc5d 100644 --- a/src/account-server/storage.cpp +++ b/src/account-server/storage.cpp @@ -591,6 +591,30 @@ Character *Storage::getCharacter(const std::string &name) return 0; } +unsigned int Storage::getCharacterId(const std::string &name) +{ + std::ostringstream sql; + sql << "SELECT id FROM " << CHARACTERS_TBL_NAME << " WHERE name = ?"; + if (!mDb->prepareSql(sql.str())) + return 0; + try + { + mDb->bindValue(1, name); + const dal::RecordSet &charInfo = mDb->processSql(); + if (charInfo.isEmpty()) + return 0; + + string_to< unsigned > toUint; + return toUint(charInfo(0, 0)); + } + catch (const dal::DbSqlQueryExecFailure &e) + { + utils::throwError("DALStorage::getCharacterId #1) SQL query failure: ", + e); + } + return 0; +} + bool Storage::doesUserNameExist(const std::string &name) { try @@ -1478,9 +1502,9 @@ void Storage::setMemberRights(int guildId, int memberId, int rights) { std::ostringstream sql; sql << "UPDATE " << GUILD_MEMBERS_TBL_NAME - << " SET rights = '" << rights << "'" - << " WHERE member_id = '" << memberId << "'" - << " AND guild_id = '" << guildId << "'';"; + << " SET rights = " << rights + << " WHERE member_id = " << memberId + << " AND guild_id = " << guildId << ";"; mDb->execSql(sql.str()); } catch (const dal::DbSqlQueryExecFailure& e) |