Mysql Saving
#1

My mysql system sets all values to 0 on disconnect, i'm not sure why....

pawn Код:
stock SavePlayer(playerid)
{
    new Query[1000], logstring[100];
    PlayerInfo[pid][pSkin] = GetPlayerSkin(pid);
    PlayerInfo[pid][pCash] = GetPlayerMoney(pid);
    PlayerInfo[pid][pLevel] = GetPlayerScore(pid);
    PlayerInfo[pid][pName] = GetName(pid);
    format(Query, sizeof(Query), "UPDATE ACCOUNTS SET PASSWORD = '%s', CASH = %d, NAME = '%s', ADMIN = %d, DEV = %d, HELPER = %d, VIP = %d, LEVEL = %d, XPOS = %4f, YPOS = %4f, ZPOS = %4f, NUMBER = %d, PTIME = %d, BANNED = %d, SEX = %d, TUT = %d, FACTION = %d, FACLEVEL = %d, FACRANK = '%s', PAYCHECK = %d, PAYDAY = %d, HOURS = %d, JAILED = %d, MASK = %d, JOB = %d, LICENSE = %d, CARKEY = %d, CARKEY2 = %d, CARKEY3 = %d, GUNLICENSE = %d, ARRESTED = %d, WALKIE = %d, BANREASON = '%s', BANADMIN = '%s', BANDATE = '%s', SKIN = %d BANK = %d WHERE ID = %d",
    PlayerInfo[pid][pPassword], PlayerInfo[pid][pCash], PlayerInfo[pid][pName], PlayerInfo[pid][pAdmin], PlayerInfo[pid][pDev], PlayerInfo[pid][pHelper], PlayerInfo[pid][pVIP], PlayerInfo[pid][pLevel], PlayerInfo[pid][pPos_x], PlayerInfo[pid][pPos_y], PlayerInfo[pid][pPos_z], PlayerInfo[pid][pPnumber], PlayerInfo[pid][pCelltime], PlayerInfo[pid][pBanned], PlayerInfo[pid][pSex],
    PlayerInfo[pid][pTut], PlayerInfo[pid][pFaction], PlayerInfo[pid][pFLevel], PlayerInfo[pid][pFRank], PlayerInfo[pid][pPaycheck], PlayerInfo[pid][pPayday],
    PlayerInfo[pid][pHours], PlayerInfo[pid][pJailed], PlayerInfo[pid][pMask], PlayerInfo[pid][pJob], PlayerInfo[pid][pDrivLic],
    PlayerInfo[pid][pCarkey], PlayerInfo[pid][pCarkey2], PlayerInfo[pid][pCarkey3], PlayerInfo[pid][pGunLic], PlayerInfo[pid][pArrested], PlayerInfo[pid][pWalkie], PlayerInfo[pid][pBanReason], PlayerInfo[pid][pBanAdmin], PlayerInfo[pid][pBanDate], PlayerInfo[pid][pSkin], PlayerInfo[pid][pBank], PlayerInfo[pid][pID]);
    mysql_query(Query);
    format(logstring, sizeof(logstring), "%s's info saved.", GetName(pid));
    print(logstring);
    return 1;
}
pawn Код:
public OnPlayerDisconnect(playerid)
{
    SavePlayer(playerid);
    playerlogged[pid] = 0;
    Update3DTextLabelText(PlayerInfo[pid][pPlayername], -1, " ");
    KillTimer(HourTime);
    for(new i = 0; i < MAX_VEHICLES; i++)
    {
        if(VehicleInfo[i][vRented] == pid)
        {
            VehicleInfo[i][vRented] = -1;
            SetVehicleToRespawn(i);
            return 1;
        }
    }
    return 1;
}
Reply
#2

Did you print your query?
Try
pawn Код:
printf("%i: %s", strlen(Query), Query);
My guess is that your Query variable is too short to contain the entire message.
Try increasing it's size to 2000 or so.
Reply
#3

I dont know why I didnt think to look at the mysql logs, but I've fixed the issue
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)