The problem with saving data in mysql. -
Hello, I have a problem with mysql plugin to BlueG R6, namely... code in the database does not return the full value of the database so that nothing saves and record the passage occurs only char_health table. Any suggestions?
Code with PWN.
Code:
public SavePlayerStats(playerid, what)
{
if(!Logged[playerid])
{
return 1;
}
new query[512], main_query[1024];
format(main_query, sizeof(main_query), "UPDATE `hrp_char` SET");
if(what & SAVE_PLAYER_BASIC)
{
format(query, sizeof(query), " `char_hours` = %d, `char_minutes` = %d, `char_skin` = %d, `char_health` = '%f', `char_cash` = %d, `char_bankcash` = %d, `char_banknumb` = %d, `char_warns` = %d, `char_bw` = %d, `char_aj` = %d, `char_crash` = %d, `char_block` = %d, `char_hoteluid` = %d, `char_pdp` = %d, `char_documents` = %d, `char_lastpay` = %d, `char_job` = %d, `char_arrest` = %d, `char_arresttime` = %d, `char_spawnplace` = %d, `char_house` = %d, `char_fightstyle` = %d",
PlayerCache[playerid][pHours],
PlayerCache[playerid][pMinutes],
PlayerCache[playerid][pSkin],
PlayerCache[playerid][pHealth],
PlayerCache[playerid][pCash],
PlayerCache[playerid][pBankCash],
PlayerCache[playerid][pBankNumber],
PlayerCache[playerid][pWarns],
PlayerCache[playerid][pBW],
PlayerCache[playerid][pAJ],
PlayerCache[playerid][pCrash],
PlayerCache[playerid][pBlock],
PlayerCache[playerid][pHotel],
PlayerCache[playerid][pPDP],
PlayerCache[playerid][pDocuments],
PlayerCache[playerid][pLastPay],
PlayerCache[playerid][pJob],
PlayerCache[playerid][pArrest],
PlayerCache[playerid][pArrestTime],
PlayerCache[playerid][pSpawnPlace],
PlayerCache[playerid][pHouse],
PlayerCache[playerid][pFightingStyle]);
if(strlen(main_query) > 32)
{
strcat(main_query, ",", sizeof(main_query));
}
strcat(main_query, query, sizeof(main_query));
}
if(what & SAVE_PLAYER_POS)
{
format(main_query, sizeof(main_query), "UPDATE `hrp_char` SET");
format(query, sizeof(query), " `char_int` = %d, `char_vw` = %d, `char_posx` = %f, `char_posy` = %f, `char_posz` = %f",
PlayerCache[playerid][pInt],
PlayerCache[playerid][pVW],
PlayerCache[playerid][pPosX],
PlayerCache[playerid][pPosY],
PlayerCache[playerid][pPosZ]);
if(strlen(main_query) > 32)
{
strcat(main_query, ",", sizeof(main_query));
}
strcat(main_query, query, sizeof(main_query));
}
if(what & SAVE_PLAYER_BIZ)
{
format(main_query, sizeof(main_query), "UPDATE `hrp_char` SET");
mysql_real_escape_string(PlayerCache[playerid][pBizTitle], PlayerCache[playerid][pBizTitle]);
format(query, sizeof(query), " `char_bizuid` = %d, `char_bizperm` = %d, `char_biztitle` = %s, `char_bizpayment` = %d, `char_bizskin` = %d",
PlayerCache[playerid][pBizUID],
PlayerCache[playerid][pBizPerm],
PlayerCache[playerid][pBizTitle],
PlayerCache[playerid][pBizPayment],
PlayerCache[playerid][pBizSkin]);
if(strlen(main_query) > 32)
{
strcat(main_query, ",", sizeof(main_query));
}
strcat(main_query, query, sizeof(main_query));
}
if(what & SAVE_PLAYER_ORG)
{
format(main_query, sizeof(main_query), "UPDATE `hrp_char` SET");
mysql_real_escape_string(PlayerCache[playerid][pOrgTitle], PlayerCache[playerid][pOrgTitle]);
format(query, sizeof(query), " `char_orguid` = %d, `char_orgperm` = %d, `char_orgtitle` = %s, `char_orgpayment` = %d, `char_orgskin` = %d",
PlayerCache[playerid][pOrgUID],
PlayerCache[playerid][pOrgPerm],
PlayerCache[playerid][pOrgTitle],
PlayerCache[playerid][pOrgPayment],
PlayerCache[playerid][pOrgSkin]);
if(strlen(main_query) > 32)
{
strcat(main_query, ",", sizeof(main_query));
}
strcat(main_query, query, sizeof(main_query));
}
if(what & SAVE_PLAYER_FACTION)
{
format(main_query, sizeof(main_query), "UPDATE `hrp_char` SET");
mysql_real_escape_string(PlayerCache[playerid][pFacTitle], PlayerCache[playerid][pFacTitle]);
format(query, sizeof(query), " `char_facuid` = %d, `char_facperm`= %d, `char_factitle` = %s, `char_facpayment` = %d, `char_facskin` = %d",
PlayerCache[playerid][pFacUID],
PlayerCache[playerid][pFacPerm],
PlayerCache[playerid][pFacTitle],
PlayerCache[playerid][pFacPayment],
PlayerCache[playerid][pFacSkin]);
if(strlen(main_query) > 32)
{
strcat(main_query, ",", sizeof(main_query));
}
strcat(main_query, query, sizeof(main_query));
}
if(what & SAVE_PLAYER_SKILLS)
{
format(main_query, sizeof(main_query), "UPDATE `hrp_char` SET");
format(query, sizeof(query), " `char_driving` = %f, `char_swimming` = %f, `char_shooting` = %f, `char_fishing` = %f, `char_strength` = %f, `char_dependence` = %f",
PlayerCache[playerid][pDriving],
PlayerCache[playerid][pSwimming],
PlayerCache[playerid][pShooting],
PlayerCache[playerid][pFishing],
PlayerCache[playerid][pStrength],
PlayerCache[playerid][pDependence]);
if(strlen(main_query) > 32)
{
strcat(main_query, ",", sizeof(main_query));
}
strcat(main_query, query, sizeof(main_query));
}
format(query, sizeof(query), " WHERE char_uid = '%d' LIMIT 1", PlayerCache[playerid][pUID]);
strcat(main_query, query, sizeof(main_query));
mysql_query(main_query);
return 1;
}
Re: The problem with saving data in mysql. -
Re: The problem with saving data in mysql. -
Most recent release of mysql plugin is R31. Furthermore R6 doesn't support caching, so it can and will create security vunerabilities (DOS and similar) on your server. Additionaly, read about foreign table keys, because your table structure (fields with fac prefix) should be changed.
Re: The problem with saving data in mysql. -
I created a business, but when the server is turned off completely disappeared from the database. In addition, do not update the entire table of figures, only that part of the passage.
PS. The script runs in Windows.