aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorleak <leakzx@googlemail.com>2011-12-25 02:21:46 +0100
committerleak <leakzx@googlemail.com>2011-12-25 02:22:10 +0100
commit64a2a29506591f09eeaef86ecf839e49a07e69d3 (patch)
treeb077c53895b7fc985f764535c260a6c42e297891 /src/server/game
parent949093d36d43893843a150dfc52f03ff265b0dc7 (diff)
Core/DBLayer: Convert Execute() queries to prepared statements
Diffstat (limited to 'src/server/game')
-rwxr-xr-xsrc/server/game/Accounts/AccountMgr.cpp12
-rwxr-xr-xsrc/server/game/Chat/Commands/Level3.cpp6
-rwxr-xr-xsrc/server/game/World/World.cpp5
3 files changed, 18 insertions, 5 deletions
diff --git a/src/server/game/Accounts/AccountMgr.cpp b/src/server/game/Accounts/AccountMgr.cpp
index ebe9a9af36b..9ae80ca2919 100755
--- a/src/server/game/Accounts/AccountMgr.cpp
+++ b/src/server/game/Accounts/AccountMgr.cpp
@@ -37,8 +37,16 @@ AccountOpResult CreateAccount(std::string username, std::string password)
if (GetId(username))
return AOR_NAME_ALREDY_EXIST; // username does already exist
- LoginDatabase.PExecute("INSERT INTO account(username, sha_pass_hash, joindate) VALUES('%s', '%s', NOW())", username.c_str(), CalculateShaPassHash(username, password).c_str());
- LoginDatabase.Execute("INSERT INTO realmcharacters (realmid, acctid, numchars) SELECT realmlist.id, account.id, 0 FROM realmlist, account LEFT JOIN realmcharacters ON acctid=account.id WHERE acctid IS NULL");
+ PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_ADD_ACCOUNT);
+
+ stmt->setString(0, username);
+ stmt->setString(1, CalculateShaPassHash(username, password));
+
+ LoginDatabase.Execute(stmt);
+
+ stmt = LoginDatabase.GetPreparedStatement(LOGIN_ADD_REALM_CHARS);
+
+ LoginDatabase.Execute(stmt);
return AOR_OK; // everything's fine
}
diff --git a/src/server/game/Chat/Commands/Level3.cpp b/src/server/game/Chat/Commands/Level3.cpp
index f4f5892b587..43aa100e4b3 100755
--- a/src/server/game/Chat/Commands/Level3.cpp
+++ b/src/server/game/Chat/Commands/Level3.cpp
@@ -3280,7 +3280,8 @@ bool ChatHandler::HandleBanListCharacterCommand(const char *args)
bool ChatHandler::HandleBanListAccountCommand(const char *args)
{
- LoginDatabase.Execute("DELETE FROM ip_banned WHERE unbandate <= UNIX_TIMESTAMP() AND unbandate<>bandate");
+ PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_OLD_BANS);
+ LoginDatabase.Execute(stmt);
char* cFilter = strtok((char*)args, " ");
std::string filter = cFilter ? cFilter : "";
@@ -3385,7 +3386,8 @@ bool ChatHandler::HandleBanListHelper(QueryResult result)
bool ChatHandler::HandleBanListIPCommand(const char *args)
{
- LoginDatabase.Execute("DELETE FROM ip_banned WHERE unbandate <= UNIX_TIMESTAMP() AND unbandate<>bandate");
+ PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_OLD_IP_BANS);
+ LoginDatabase.Execute(stmt);
char* cFilter = strtok((char*)args, " ");
std::string filter = cFilter ? cFilter : "";
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index a139c50fb3e..9ad847615d1 100755
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -2687,7 +2687,10 @@ void World::InitRandomBGResetTime()
void World::ResetDailyQuests()
{
sLog->outDetail("Daily quests reset for all characters.");
- CharacterDatabase.Execute("DELETE FROM character_queststatus_daily");
+
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_QUEST_STATUS_DAILY);
+ CharacterDatabase.Execute(stmt);
+
for (SessionMap::const_iterator itr = m_sessions.begin(); itr != m_sessions.end(); ++itr)
if (itr->second->GetPlayer())
itr->second->GetPlayer()->ResetDailyQuestStatus();