Why this not working? -
MBilal - 18.08.2015
I am trying to save player data when he disconnect but its not saving his data why?
Код:
public OnPlayerDisconnect(playerid, reason)
{
new query[540];
new sr[1000];
strcat(sr,"UPDATE `players` SET `Admin`=%d, `VIP`=%d, `Ban`=%d, `Kills`=%d ,`Deaths`=%d, `Score`=%d,`Cash`=%d,`Skin`=%d,`Jail`=%d,`Headshots`=%d,`Bombs`=%d,`Veh1`=%d,`Veh2`=%d,`Veh3`=%d,`Veh4`=%d,`Veh5`=%d,`Veh6`=%d,`Veh7`=%d,`Veh8`=%d,`Veh9`=%d,`Veh10`=%d,`Lock`=%d,`Cloths`=%d,`Helper`=%d,`AK47`=%d,`M4`=%d,`SP`=%d,`Balance`=%d,`Duelwon`=%d,`Duellose`=%d,`Kick`=%d,`Warns`=%d,`Mathwin`=%d,`Moneybag`=%d WHERE `ID`=%d " );
mysql_format(mysql, query, sizeof(query),sr,\
pInfo[playerid][pLevel] ,pInfo[playerid][Donator],pInfo[playerid][Banned],pInfo[playerid][Kills],pInfo[playerid][Deaths], GetPlayerScore(playerid), GetPlayerCash(playerid),pInfo[playerid][Skin],
pInfo[playerid][Jailed],pInfo[playerid][Headshot],pInfo[playerid][Bomb],pInfo[playerid][pVeh][0], pInfo[playerid][pVeh][1], pInfo[playerid][pVeh][2], pInfo[playerid][pVeh][4],
pInfo[playerid][pVeh][5], pInfo[playerid][pVeh][6], pInfo[playerid][pVeh][7], pInfo[playerid][pVeh][8], pInfo[playerid][pVeh][9], pInfo[playerid][pLock], pInfo[playerid][pclothes],
pInfo[playerid][pHelper], pInfo[playerid][pAk47], pInfo[playerid][pM4], pInfo[playerid][pSp], pInfo[playerid][pBankAccount], pInfo[playerid][pDuelsWon], pInfo[playerid][pDuelsLost],
pInfo[playerid][pKick], pInfo[playerid][Warnings], pInfo[playerid][Mathwin], pInfo[playerid][Moneybag], pInfo[playerid][PDID]);
mysql_tquery(mysql, query, "", "");
Re: Why this not working? -
Beckett - 18.08.2015
First of all why are you using strcat if the cells aren't full yet?
Secondly, why are you using mysql_format if you have nothing to escape than numbers? Could simply do it with a standard format.
pawn Код:
new query[540];
format(query,sizeof(query),"UPDATE `players` SET `Admin`=%d, `VIP`=%d, `Ban`=%d, `Kills`=%d ,`Deaths`=%d, `Score`=%d,`Cash`=%d,`Skin`=%d,`Jail`=%d,`Headshots`=%d,`Bombs`=%d,`Veh1`=%d,`Veh2`=%d,`Veh3`=%d,`Veh4`=%d,`Veh5`=%d,`Veh6`=%d,`Veh7`=%d,`Veh8`=%d,`Veh9`=%d,`Veh10`=%d,`Lock`=%d,`Cloths`=%d,`Helper`=%d,`AK47`=%d,`M4`=%d,`SP`=%d,`Balance`=%d,`Duelwon`=%d,`Duellose`=%d,`Kick`=%d,`Warns`=%d,`Mathwin`=%d,`Moneybag`=%d WHERE `ID`=%d "
pInfo[playerid][pLevel] ,pInfo[playerid][Donator],pInfo[playerid][Banned],pInfo[playerid][Kills],pInfo[playerid][Deaths], GetPlayerScore(playerid), GetPlayerCash(playerid),pInfo[playerid][Skin],
pInfo[playerid][Jailed],pInfo[playerid][Headshot],pInfo[playerid][Bomb],pInfo[playerid][pVeh][0], pInfo[playerid][pVeh][1], pInfo[playerid][pVeh][2], pInfo[playerid][pVeh][4],
pInfo[playerid][pVeh][5], pInfo[playerid][pVeh][6], pInfo[playerid][pVeh][7], pInfo[playerid][pVeh][8], pInfo[playerid][pVeh][9], pInfo[playerid][pLock], pInfo[playerid][pclothes],
pInfo[playerid][pHelper], pInfo[playerid][pAk47], pInfo[playerid][pM4], pInfo[playerid][pSp], pInfo[playerid][pBankAccount], pInfo[playerid][pDuelsWon], pInfo[playerid][pDuelsLost],
pInfo[playerid][pKick], pInfo[playerid][Warnings], pInfo[playerid][Mathwin], pInfo[playerid][Moneybag], pInfo[playerid][PDID]);
mysql_tquery(mysql, query);
print(query);
You might aswell want to check your MySQL logs and see what's really going on there and what is triggering the error.
Re: Why this not working? -
MBilal - 18.08.2015
[13:16:13] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Still not working ...
Re : Why this not working? -
Dutheil - 18.08.2015
mysql_format is faster than format.
So, you forgot "pInfo[playerid][pVeh][3]", try this :
PHP код:
public OnPlayerDisconnect(playerid, reason)
{
mysql_format(mysql, query, sizeof(query), " \
UPDATE players SET \
Admin=%d, \
VIP=%d, \
Ban=%d, \
Kills=%d, \
Deaths=%d, \
Score=%d, \
Cash=%d, \
Skin=%d, \
Jail=%d, \
Headshots=%d, \
Bombs=%d, \
Veh1=%d, \
Veh2=%d, \
Veh3=%d, \
Veh4=%d, \
Veh5=%d, \
Veh6=%d, \
Veh7=%d, \
Veh8=%d, \
Veh9=%d, \
Veh10=%d, \
Lock=%d, \
Cloths=%d, \
Helper=%d, \
AK47=%d, \
M4=%d, \
SP=%d, \
Balance=%d, \
Duelwon=%d, \
Duellose=%d, \
Kick=%d, \
Warns=%d, \
Mathwin=%d, \
Moneybag=%d \
WHERE ID=%d",
pInfo[playerid][pLevel],
pInfo[playerid][Donator],
pInfo[playerid][Banned],
pInfo[playerid][Kills],
pInfo[playerid][Deaths],
GetPlayerScore(playerid),
GetPlayerCash(playerid),
pInfo[playerid][Skin],
pInfo[playerid][Jailed],
pInfo[playerid][Headshot],
pInfo[playerid][Bomb],
pInfo[playerid][pVeh][0],
pInfo[playerid][pVeh][1],
pInfo[playerid][pVeh][2],
pInfo[playerid][pVeh][3],
pInfo[playerid][pVeh][4],
pInfo[playerid][pVeh][5],
pInfo[playerid][pVeh][6],
pInfo[playerid][pVeh][7],
pInfo[playerid][pVeh][8],
pInfo[playerid][pVeh][9],
pInfo[playerid][pLock],
pInfo[playerid][pclothes],
pInfo[playerid][pHelper],
pInfo[playerid][pAk47],
pInfo[playerid][pM4],
pInfo[playerid][pSp],
pInfo[playerid][pBankAccount],
pInfo[playerid][pDuelsWon],
pInfo[playerid][pDuelsLost],
pInfo[playerid][pKick],
pInfo[playerid][Warnings],
pInfo[playerid][Mathwin],
pInfo[playerid][Moneybag],
pInfo[playerid][PDID]);
mysql_tquery(mysql, query);