MySQL cache's not working
#1

Heyo, trying to load accounts with cache system but it somehow doesn't?

The saving works, account gets updated, login+register with password works but somehow using caches it doesn't work!

Код:
forward OnAccountLoad(playerid); public OnAccountLoad(playerid)
{
	GetPlayerIp(playerid, pData[playerid][pIP], 16);
    pData[playerid][pLevel] = cache_get_field_content_int(0, "pLevel");
    pData[playerid][pRespect] = cache_get_field_content_int(0, "pRespect");
    pData[playerid][pSkin] = cache_get_field_content_int(0, "pSkin");
    pData[playerid][pAdmin] = cache_get_field_content_int(0, "pAdmin");
    pData[playerid][pVIP] = cache_get_field_content_int(0, "pVIP");
    pData[playerid][pMoney] = cache_get_field_content_int(0, "pMoney");
    pData[playerid][pGender] = cache_get_field_content_int(0, "pGender");
    pData[playerid][pAge] = cache_get_field_content_int(0, "pAge");
    pData[playerid][pBank] = cache_get_field_content_int(0, "pBank");
    pData[playerid][pBanned] = cache_get_field_content_int(0, "pBanned");
    pData[playerid][pBans] = cache_get_field_content_int(0, "pBans");
    cache_get_field_content(0, "pBannedBy", pData[playerid][pBannedBy], mysql, MAX_PLAYER_NAME);
    cache_get_field_content(0, "pBanReason", pData[playerid][pBanReason], mysql, 130);
    cache_get_field_content(0, "pBanDate", pData[playerid][pBanDate], mysql, 32);
    cache_get_field_content(0, "pBanTime", pData[playerid][pBanTime], mysql, 32);
    pData[playerid][pBanAppealable] = cache_get_field_content_int(0, "pBanAppealable");
    pData[playerid][pFaction] = cache_get_field_content_int(0, "pFaction");
    pData[playerid][pRank] = cache_get_field_content_int(0, "pRank");
    pData[playerid][pFacSkin] = cache_get_field_content_int(0, "pFacSkin");
    pData[playerid][pPosX] = cache_get_field_content_float(0, "pPosX");
    pData[playerid][pPosY] = cache_get_field_content_float(0, "pPosY");
    pData[playerid][pPosZ] = cache_get_field_content_float(0, "pPosZ");
    pData[playerid][pPosA] = cache_get_field_content_float(0, "pPosA");
    pData[playerid][pTester] = cache_get_field_content_int(0, "pTester");
    pData[playerid][pTutStep] = cache_get_field_content_int(0, "pTutStep");
	pData[playerid][pFinishedTut] = cache_get_field_content_int(0, "pFinishedTut");
	pData[playerid][pMuted] = cache_get_field_content_int(0, "pMuted");

	gPlayerLogged[playerid] = 1;

    GivePlayerMoney(playerid, pData[playerid][pMoney]);
    SendClientMessage(playerid, COLOR_HAPPYGREEN, "You're ready to play! Hit the spawn button to begin!");
    return 1;
}
What did I do wrong!
Reply
#2

Post your mysql log and your query.
Reply
#3

I eh, am not a smart man..

Apparently I've been using RPName(playerid) instead of PlayerName(playerid)

Код:
mysql_format(mysql, query, sizeof(query), "SELECT * FROM `accs` WHERE `pName` = '%e' LIMIT 1", RPName(playerid));
causing this:

Код:
[04:59:45] [DEBUG] mysql_tquery - connection: 1, query: "SELECT * FROM `accs` WHERE `pName` = 'Test Account' LIMIT 1", callback: "OnAccountLoad", format: "i"
instead of

Код:
[04:59:45] [DEBUG] mysql_tquery - connection: 1, query: "SELECT * FROM `accs` WHERE `pName` = 'Test_Account' LIMIT 1", callback: "OnAccountLoad", format: "i"
I guess I solved this, sorry!

Still got a problem;

Код:
[07:44:09] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
[07:44:11] [DEBUG] cache_get_field_content_float - row: 0, field_name: "pPosZ", connection: 1
[07:44:11] [WARNING] cache_get_field_content_float - no active cache
[07:44:11] [DEBUG] cache_get_field_content_float - row: 0, field_name: "pPosY", connection: 1
[07:44:11] [WARNING] cache_get_field_content_float - no active cache
[07:44:11] [DEBUG] cache_get_field_content_float - row: 0, field_name: "pPosX", connection: 1
[07:44:11] [WARNING] cache_get_field_content_float - no active cache
[07:44:11] [DEBUG] cache_get_field_content_float - row: 0, field_name: "pPosA", connection: 1
[07:44:11] [WARNING] cache_get_field_content_float - no active cache

    pData[playerid][pPosX] = cache_get_field_content_float(0, "pPosX");
    pData[playerid][pPosY] = cache_get_field_content_float(0, "pPosY");
    pData[playerid][pPosZ] = cache_get_field_content_float(0, "pPosZ");
    pData[playerid][pPosA] = cache_get_field_content_float(0, "pPosA");
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)