db: simplify player save escaping
This commit is contained in:
@@ -92,6 +92,10 @@ size_t CreatePlayerSaveQuery(char * pszQuery, size_t querySize, TPlayerTable * p
|
||||
{
|
||||
size_t queryLen;
|
||||
const std::string escapedIp = CDBManager::instance().EscapeStringCopy(pkTab->ip, strnlen(pkTab->ip, sizeof(pkTab->ip)));
|
||||
const std::string escapedSkillLevel = CDBManager::instance().EscapeStringCopy(
|
||||
reinterpret_cast<const char*>(pkTab->skills), sizeof(pkTab->skills));
|
||||
const std::string escapedQuickslot = CDBManager::instance().EscapeStringCopy(
|
||||
reinterpret_cast<const char*>(pkTab->quickslot), sizeof(pkTab->quickslot));
|
||||
|
||||
queryLen = snprintf(pszQuery, querySize,
|
||||
"UPDATE player%s SET "
|
||||
@@ -165,26 +169,20 @@ size_t CreatePlayerSaveQuery(char * pszQuery, size_t querySize, TPlayerTable * p
|
||||
pkTab->skill_point,
|
||||
pkTab->sub_skill_point,
|
||||
pkTab->stat_reset_count,
|
||||
escapedIp.c_str(),
|
||||
pkTab->parts[PART_MAIN],
|
||||
pkTab->parts[PART_HAIR],
|
||||
pkTab->skill_group,
|
||||
static_cast<long>(pkTab->lAlignment),
|
||||
pkTab->horse.bLevel,
|
||||
pkTab->horse.bRiding,
|
||||
pkTab->horse.sHealth,
|
||||
pkTab->horse.dwHorseHealthDropTime,
|
||||
pkTab->horse.sStamina,
|
||||
pkTab->horse_skill_point);
|
||||
escapedIp.c_str(),
|
||||
pkTab->parts[PART_MAIN],
|
||||
pkTab->parts[PART_HAIR],
|
||||
pkTab->skill_group,
|
||||
static_cast<long>(pkTab->lAlignment),
|
||||
pkTab->horse.bLevel,
|
||||
pkTab->horse.bRiding,
|
||||
pkTab->horse.sHealth,
|
||||
pkTab->horse.dwHorseHealthDropTime,
|
||||
pkTab->horse.sStamina,
|
||||
pkTab->horse_skill_point);
|
||||
|
||||
// Binary 로 바꾸기 위한 임시 공간
|
||||
static char text[8192 + 1];
|
||||
|
||||
CDBManager::instance().EscapeString(text, pkTab->skills, sizeof(pkTab->skills));
|
||||
queryLen += snprintf(pszQuery + queryLen, querySize - queryLen, "skill_level = '%s', ", text);
|
||||
|
||||
CDBManager::instance().EscapeString(text, pkTab->quickslot, sizeof(pkTab->quickslot));
|
||||
queryLen += snprintf(pszQuery + queryLen, querySize - queryLen, "quickslot = '%s' ", text);
|
||||
queryLen += snprintf(pszQuery + queryLen, querySize - queryLen, "skill_level = '%s', ", escapedSkillLevel.c_str());
|
||||
queryLen += snprintf(pszQuery + queryLen, querySize - queryLen, "quickslot = '%s' ", escapedQuickslot.c_str());
|
||||
|
||||
queryLen += snprintf(pszQuery + queryLen, querySize - queryLen, " WHERE id=%d", pkTab->id);
|
||||
return queryLen;
|
||||
|
||||
Reference in New Issue
Block a user