From d142bc552ada1c9c0b96ef07e302bd7663731849 Mon Sep 17 00:00:00 2001 From: Alex King <89047260+Kinglykrab@users.noreply.github.com> Date: Wed, 5 Apr 2023 11:25:28 -0400 Subject: [PATCH] [Cleanuo] Only define row if we have results in Database::GetCharacterID() (#3199) # Notes - This is more performant and we don't unnecessarily define a variable we can't use. - https://pvs-studio.com/en/docs/warnings/v821/ --- common/database.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/common/database.cpp b/common/database.cpp index 975aee16d..3d585586a 100644 --- a/common/database.cpp +++ b/common/database.cpp @@ -797,14 +797,17 @@ bool Database::SaveCharacterCreate(uint32 character_id, uint32 account_id, Playe } uint32 Database::GetCharacterID(const char *name) { - std::string query = StringFormat("SELECT `id` FROM `character_data` WHERE `name` = '%s'", name); + const auto query = fmt::format( + "SELECT `id` FROM `character_data` WHERE `name` = '{}'", + Strings::Escape(name) + ); auto results = QueryDatabase(query); - auto row = results.begin(); - if (results.RowCount() == 1) - { - return Strings::ToUnsignedInt(row[0]); + if (!results.Success() || !results.RowCount()) { + return 0; } - return 0; + + auto row = results.begin(); + return Strings::ToUnsignedInt(row[0]); } /*