HELP !! My money don't save MYSQL!
#1

I have a mysql server.
When I login i type command /givemoney to give me 5000$
Ok, I have 5000$
After exit game and close console when I start console again and login I have 0$ like at beggining...
What can I do?
Reply
#2

Are you actually saving your data to your MySQL database?
Reply
#3

Yes, when I make my account in-game automatically save in MySQL on 'accounts'

P.s: Thanks for fast reply!

EDIT: Here is OnAccountSave

Код:
script OnAccountSave(playerid)
{
	if(PlayerInfo[playerid][pLogged] == 0) return 1;
	new query[456], final[1028];
	format(query, sizeof(query), "UPDATE `Accounts` SET ");
	strcat(final,query);
 	format(query, sizeof(query), "`Level` = '%d',",PlayerInfo[playerid][pLevel]);
	strcat(final,query);
 	format(query, sizeof(query), "`Sex` = '%d',",PlayerInfo[playerid][pSex]);
	strcat(final,query);
 	format(query, sizeof(query), "`Skin` = '%d',",PlayerInfo[playerid][pSkin]);
	strcat(final,query);
 	format(query, sizeof(query), "`Hours` = '%d',",PlayerInfo[playerid][pHours]);
	strcat(final,query);
	format(query, sizeof(query), "`Minutes` = '%d',",PlayerInfo[playerid][pMinutes]);
	strcat(final,query);
	format(query, sizeof(query), "`Language` = '%d',",PlayerInfo[playerid][pLanguage]);
	strcat(final,query);
	format(query, sizeof(query), "`Admin` = '%d',",PlayerInfo[playerid][pAdmin]);
	strcat(final,query);
	format(query, sizeof(query), "`Helper` = '%d',",PlayerInfo[playerid][pHelper]);
	strcat(final,query);
	format(query, sizeof(query), "`Respect` = '%d',",PlayerInfo[playerid][pRespect]);
	strcat(final,query);
 	format(query, sizeof(query), "`Money` = '%d',",PlayerInfo[playerid][pMoney]);
	strcat(final,query);
	format(query, sizeof(query), "`Bank` = '%d',",PlayerInfo[playerid][pBank]);
	strcat(final,query);
 	format(query, sizeof(query), "`Age` = '%d',",PlayerInfo[playerid][pAge]);
	strcat(final,query);
	format(query, sizeof(query), "`Reports` = '%d',",PlayerInfo[playerid][pReports]);
	strcat(final,query);
	format(query, sizeof(query), "`Newbies` = '%d',",PlayerInfo[playerid][pNewbies]);
	strcat(final,query);
	format(query, sizeof(query), "`Warn` = '%d',",PlayerInfo[playerid][pWarn]);
	strcat(final,query);
	format(query, sizeof(query), "`MuteTime` = '%d',",PlayerInfo[playerid][pMuteTime]);
	strcat(final,query);
	format(query, sizeof(query), "`Mute` = '%d',",PlayerInfo[playerid][pMute]);
	strcat(final,query);
	format(query, sizeof(query), "`Banned` = '%d',",PlayerInfo[playerid][pBanned]);
	strcat(final,query);
	format(query, sizeof(query), "`BanDays` = '%d',",PlayerInfo[playerid][pBanDays]);
	strcat(final,query);
	format(query, sizeof(query), "`BannedBy` = '%s',",PlayerInfo[playerid][pBannedBy]);
	strcat(final,query);
	format(query, sizeof(query), "`MarkX` = '%f',",PlayerInfo[playerid][pMarkX]);
	strcat(final,query);
	format(query, sizeof(query), "`MarkY` = '%f',",PlayerInfo[playerid][pMarkY]);
	strcat(final,query);
	format(query, sizeof(query), "`MarkZ` = '%f',",PlayerInfo[playerid][pMarkZ]);
	strcat(final,query);
	format(query, sizeof(query), "`BannedReason` = '%s',",PlayerInfo[playerid][pBannedReason]);
	strcat(final,query);
	format(query, sizeof(query), "`Crashed` = '%d',",PlayerInfo[playerid][pCrashed]);
	strcat(final,query);
	format(query, sizeof(query), "`DrivingLicenseA` = '%d',",PlayerInfo[playerid][pDrivingLicenseA]);
	strcat(final,query);
	format(query, sizeof(query), "`DrivingLicenseB` = '%d',",PlayerInfo[playerid][pDrivingLicenseB]);
	strcat(final,query);
	format(query, sizeof(query), "`DrivingLicenseC` = '%d',",PlayerInfo[playerid][pDrivingLicenseC]);
	strcat(final,query);
	format(query, sizeof(query), "`WeaponLicense` = '%d',",PlayerInfo[playerid][pWeaponLicense]);
	strcat(final,query);
	format(query, sizeof(query), "`FlyingLicense` = '%d',",PlayerInfo[playerid][pFlyingLicense]);
	strcat(final,query);
	format(query, sizeof(query), "`NavigationLicense` = '%d',",PlayerInfo[playerid][pNavigationLicense]);
	strcat(final,query);
	format(query, sizeof(query), "`Work` = '%d',",PlayerInfo[playerid][pWork]);
	strcat(final,query);
	format(query, sizeof(query), "`AdminJailed` = '%d',",PlayerInfo[playerid][pAdminJailed]);
	strcat(final,query);
	format(query, sizeof(query), "`AdminJailedReason` = '%s',",PlayerInfo[playerid][pAdminJailedReason]);
	strcat(final,query);
	format(query, sizeof(query), "`AdminJailedMinutes` = '%d',",PlayerInfo[playerid][pAdminJailedMinutes]);
	strcat(final,query);
	format(query, sizeof(query), "`AdminJailedAdmin` = '%s',",PlayerInfo[playerid][pAdminJailedAdmin]);
	strcat(final,query);
	format(query, sizeof(query), "`AlreadyVoted` = '%s',",PlayerInfo[playerid][pAlreadyVoted]);
	strcat(final,query);
	format(query, sizeof(query), "`Tester` = '%d',",PlayerInfo[playerid][pTester]);
	strcat(final,query);
	format(query, sizeof(query), "`Recover` = '%s'",PlayerInfo[playerid][pRecover]);
	strcat(final,query);
	format(query, sizeof(query), " WHERE ID = %d", PlayerInfo[playerid][pID]);
	strcat(final,query);
	mysql_format(mysql, final, sizeof(final), "%s", final);
	mysql_query(mysql, final, false);
	return 1;
}
Reply
#4

That's when you make your account. You said you gave yourself $5,000 and it didn't save, meaning you mustn't be saving the money.
Reply
#5

If you don't save when player disconnect so it's not by saved. So you have when closing gamemode each time kick player, let save stats. Or save all stats for player in some timer
Reply
#6

Have you tried printing the result to see if it actually does save and there's no errors in that query? That's what I usually do.
Reply
#7

Quote:
Originally Posted by MerryDeer
Посмотреть сообщение
If you don't save when player disconnect so it's not by saved. So you have when closing gamemode each time kick player, let save stats. Or save all stats for player in some timer
I have at OnPlayerDisconnect this:
Код:
public OnPlayerDisconnect(playerid, reason)
{
	if(TakingLicenses[playerid] == 1)
	{
        if(TakingLicensesType[playerid] == 1)
        {
	    	PlayerInfo[playerid][pDrivingLicenseB] = 0;
			DisablePlayerCheckpointEx(playerid, 2);
			TakingLicenses[playerid] = 1;
			TakingLicensesType[playerid] = 0;
			TakingLicenses[playerid] = 0;
			DestroyVehicle(TakingLicensesVehicle[playerid]);
			TakingLicensesStage[playerid] = 0;
			DisableRemoteVehicleCollisions(playerid, 0);
		}
	}
	
	foreach(new x : Player)
	{
 		if(SpectatingID[x] == playerid && SpectatingState[x] != 0)
 		{
			TogglePlayerSpectating(x, 0);
			SpectatingState[x] = 0;
			SpectatingID[x] = INVALID_PLAYER_ID;
	    	SpectatingPlace[x] = -1;
	    	SetPlayerPos(x, SpectatePos[x][0], SpectatePos[x][1], SpectatePos[x][2]);
	    	SetPlayerInterior(x, SpecIntID[x]);
	    	SCM(x, COLOR_GRAD2, "* The spectating has been stopped. (Quit)");
		}
	}
	if(ServerRestarting == 1)
	{
		if(PlayerInfo[playerid][pLogged] == 1)
	    {
	        if(GetPlayerInterior(playerid) == 0)
	        {
	            PlayerInfo[playerid][pCrashed] = 1;
	           	GetPlayerPos(playerid, PlayerInfo[playerid][pMarkX], PlayerInfo[playerid][pMarkY], PlayerInfo[playerid][pMarkZ]);
	        }
		}
	}
	else
	{
	    new szDisconnectReason[3][] =
	    {
	        "Timeout/Crash",
	        "Quit",
	        "Kick/Ban"
	    };
	    if(PlayerInfo[playerid][pLogged] == 1)
	    {
	        new strglobal[856];
	        if(reason == 0 && GetPlayerInterior(playerid) == 0)
	        {
	            PlayerInfo[playerid][pCrashed] = 1;
	           	GetPlayerPos(playerid, PlayerInfo[playerid][pMarkX], PlayerInfo[playerid][pMarkY], PlayerInfo[playerid][pMarkZ]);
	        }
			format(strglobal, sizeof(strglobal), "* %s disconnected from server. (%s) ", GetName(playerid), szDisconnectReason[reason]);
			SendNearMessage(5.0, playerid, strglobal, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
		}
	}

	if(ActiveReport[playerid] == 1) 
	{
	    new strglobal[856];
		new toplayerid;
		if(ReportDuty[playerid] == 1) { toplayerid = ReportAdminID[playerid]; }
		if(ReportDuty[playerid] == 2) { toplayerid = ReportPlayerID[playerid]; }
		ActiveReport[toplayerid] = 0, ActiveReport[playerid] = 0;
		ReportDuty[playerid] = 0, ReportDuty[toplayerid] = 0;
		format(strglobal, sizeof(strglobal),"* %s stopped this report session (Quit).", GetName(playerid));
		SCM(playerid, COLOR_YELLOW2, strglobal);
		SCM(toplayerid, COLOR_YELLOW2, strglobal);
		ReportPlayerID[playerid] = INVALID_PLAYER_ID;
		ReportPlayerID[toplayerid] = INVALID_PLAYER_ID;
		ReportAdminID[playerid] = INVALID_PLAYER_ID;
		ReportAdminID[toplayerid] = INVALID_PLAYER_ID;
	}
	
	if(Registering[playerid] == 1)
	{
		new query[256];
		format(query, sizeof(query), "DELETE from Accounts where ID = %d", PlayerInfo[playerid][pID]);
		mysql_query(mysql, query, false);
	}
	if(PlayerInfo[playerid][pLogged] == 1)
	{
		OnAccountSave(playerid);
	}
	return 1;
}
Quote:
Originally Posted by Luis-
Посмотреть сообщение
Have you tried printing the result to see if it actually does save and there's no errors in that query? That's what I usually do.
How I can do that?
Reply
#8

Simply adding this
pawn Код:
printf("%s", final);
after the mysql_query on your account saving function.
Reply
#9

Quote:
Originally Posted by Luis-
Посмотреть сообщение
Simply adding this
pawn Код:
printf("%s", final);
after the mysql_query on your account saving function.
Ok, I do that but idk where to find result
Btw, I found this on mysql_log

Код:
[19:22:44] [ERROR] CMySQLQuery::Execute - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' `gender` = , `skin` = , `country` = , `email` = '', `admin` = , `helper` = , `m' at line 1
Reply
#10

Hmm, I did see something wrong with the above code, you're wrapping integers which shouldn't be done.
pawn Код:
script OnAccountSave(playerid)
{
    if(PlayerInfo[playerid][pLogged] == 0) return 1;
    new query[456], final[1028];
    format(query, sizeof(query), "UPDATE `Accounts` SET ");
    strcat(final,query);
    format(query, sizeof(query), "`Level` = %d,",PlayerInfo[playerid][pLevel]);
    strcat(final,query);
    format(query, sizeof(query), "`Sex` = %d,",PlayerInfo[playerid][pSex]);
    strcat(final,query);
    format(query, sizeof(query), "`Skin` = %d,",PlayerInfo[playerid][pSkin]);
    strcat(final,query);
    format(query, sizeof(query), "`Hours` = %d,",PlayerInfo[playerid][pHours]);
    strcat(final,query);
    format(query, sizeof(query), "`Minutes` = %d,",PlayerInfo[playerid][pMinutes]);
    strcat(final,query);
    format(query, sizeof(query), "`Language` = %d,",PlayerInfo[playerid][pLanguage]);
    strcat(final,query);
    format(query, sizeof(query), "`Admin` = %d,",PlayerInfo[playerid][pAdmin]);
    strcat(final,query);
    format(query, sizeof(query), "`Helper` = %d,",PlayerInfo[playerid][pHelper]);
    strcat(final,query);
    format(query, sizeof(query), "`Respect` = %d,",PlayerInfo[playerid][pRespect]);
    strcat(final,query);
    format(query, sizeof(query), "`Money` = %d,",PlayerInfo[playerid][pMoney]);
    strcat(final,query);
    format(query, sizeof(query), "`Bank` = %d,",PlayerInfo[playerid][pBank]);
    strcat(final,query);
    format(query, sizeof(query), "`Age` = %d,",PlayerInfo[playerid][pAge]);
    strcat(final,query);
    format(query, sizeof(query), "`Reports` = %d,",PlayerInfo[playerid][pReports]);
    strcat(final,query);
    format(query, sizeof(query), "`Newbies` = %d,",PlayerInfo[playerid][pNewbies]);
    strcat(final,query);
    format(query, sizeof(query), "`Warn` = %d,",PlayerInfo[playerid][pWarn]);
    strcat(final,query);
    format(query, sizeof(query), "`MuteTime` = %d,",PlayerInfo[playerid][pMuteTime]);
    strcat(final,query);
    format(query, sizeof(query), "`Mute` = %d,",PlayerInfo[playerid][pMute]);
    strcat(final,query);
    format(query, sizeof(query), "`Banned` = %d,",PlayerInfo[playerid][pBanned]);
    strcat(final,query);
    format(query, sizeof(query), "`BanDays` = %d,",PlayerInfo[playerid][pBanDays]);
    strcat(final,query);
    format(query, sizeof(query), "`BannedBy` = '%s',",PlayerInfo[playerid][pBannedBy]);
    strcat(final,query);
    format(query, sizeof(query), "`MarkX` = %f,",PlayerInfo[playerid][pMarkX]);
    strcat(final,query);
    format(query, sizeof(query), "`MarkY` = %f,",PlayerInfo[playerid][pMarkY]);
    strcat(final,query);
    format(query, sizeof(query), "`MarkZ` = %f,",PlayerInfo[playerid][pMarkZ]);
    strcat(final,query);
    format(query, sizeof(query), "`BannedReason` = '%s',",PlayerInfo[playerid][pBannedReason]);
    strcat(final,query);
    format(query, sizeof(query), "`Crashed` = %d,",PlayerInfo[playerid][pCrashed]);
    strcat(final,query);
    format(query, sizeof(query), "`DrivingLicenseA` = %d,",PlayerInfo[playerid][pDrivingLicenseA]);
    strcat(final,query);
    format(query, sizeof(query), "`DrivingLicenseB` = %d,",PlayerInfo[playerid][pDrivingLicenseB]);
    strcat(final,query);
    format(query, sizeof(query), "`DrivingLicenseC` = %d,",PlayerInfo[playerid][pDrivingLicenseC]);
    strcat(final,query);
    format(query, sizeof(query), "`WeaponLicense` = %d,",PlayerInfo[playerid][pWeaponLicense]);
    strcat(final,query);
    format(query, sizeof(query), "`FlyingLicense` = %d,",PlayerInfo[playerid][pFlyingLicense]);
    strcat(final,query);
    format(query, sizeof(query), "`NavigationLicense` = %d,",PlayerInfo[playerid][pNavigationLicense]);
    strcat(final,query);
    format(query, sizeof(query), "`Work` = %d,",PlayerInfo[playerid][pWork]);
    strcat(final,query);
    format(query, sizeof(query), "`AdminJailed` = %d,",PlayerInfo[playerid][pAdminJailed]);
    strcat(final,query);
    format(query, sizeof(query), "`AdminJailedReason` = '%s',",PlayerInfo[playerid][pAdminJailedReason]);
    strcat(final,query);
    format(query, sizeof(query), "`AdminJailedMinutes` = %d,",PlayerInfo[playerid][pAdminJailedMinutes]);
    strcat(final,query);
    format(query, sizeof(query), "`AdminJailedAdmin` = '%s',",PlayerInfo[playerid][pAdminJailedAdmin]);
    strcat(final,query);
    format(query, sizeof(query), "`AlreadyVoted` = '%s',",PlayerInfo[playerid][pAlreadyVoted]);
    strcat(final,query);
    format(query, sizeof(query), "`Tester` = %d,",PlayerInfo[playerid][pTester]);
    strcat(final,query);
    format(query, sizeof(query), "`Recover` = '%s'",PlayerInfo[playerid][pRecover]);
    strcat(final,query);
    format(query, sizeof(query), " WHERE ID = %d", PlayerInfo[playerid][pID]);
    strcat(final,query);
    mysql_format(mysql, final, sizeof(final), "%s", final);
    mysql_query(mysql, final, false);
    return 1;
}
Only strings should be wrapped.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)