[MySQL] Speichern von Accounts funktioniert nicht.

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag,


    Ich habe ein Problem.. Da ich noch nicht sehr viel mit MySQL gearbeitet hatte, habe ich nun ein Problem..


    Die daten speichern sich nicht ab... Könnte mir da jemand helfen :)?


    Code:


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

    Einmal editiert, zuletzt von Kevin_CaruZo ()

  • Das gibt mir die Log aus!



    Aber denooch speichert der nicht's aber ich habe weiterhin 50k Geld obwohl da in der Log steht Money=48250


    Hat das was damit zutun?
    [21:35:26] [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 '`LSPDM4Rang`='1', `LSPDAKRang`='1', `LSPDMP5Rang`='1', `LSPDShotRang`='4', `LSPD' at line 1
    [21:36:12] [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 '`Geschenk`='0', `GeschenkCount`='0'`Muted`='0', `MuteReason`='', `TruckSkill`='6' at line 1


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

    Einmal editiert, zuletzt von Kevin_CaruZo ()

  • "`CookHP" - So endet dein letzter Mysql Befehl. Sieht fast aus als währe dein "mainQuery" zu klein.
    "`CookHP1`='0', `CookHP1`='0', `CookHP1`='0', `CookHP1`='0', `CookHP1`='0'" das ergibt übrigens auch keinen Sinn.


    "`GeschenkCount`='0'`Muted`" - Hier fehlt ein Beistrich.

  • Der Code ist jetzt so:

    new mainQuery[2046], secondQuery[512];
    format(secondQuery, sizeof(secondQuery), "UPDATE `script_accounts` SET `Level`='%d', `Admin`='%d', `SpawnHealth`='%f', `PayDay`='%d', `Exp`='%d', `Fraktion`='%d', `PBPoints`='%d', `Zigaretten`='%d', `Bierflaschen`='%d', `Ipod`='%d', `GPSIZDA`='%d', ",
    Spieler[playerid][pLevel], Spieler[playerid][pAdmin], Spieler[playerid][pSpawnHealth],
    Spieler[playerid][pPayDay], Spieler[playerid][pExp], Spieler[playerid][pFraktion], Spieler[playerid][pPBPoints], Spieler[playerid][pZigaretten], Spieler[playerid][pBierflaschen], Spieler[playerid][pIpod], Spieler[playerid][pGPSIZDA]);
    strcat(mainQuery, secondQuery);



    format(secondQuery, sizeof(secondQuery), "`Tutorial`='%d', `Skin`='%d', `FrakSkin`='%d', `Geschlecht`='%d', `Perso`='%d', `CarLicense`='%d', `CarLicensePoints`='%d', `Wanteds`='%d', ",
    Spieler[playerid][pTutorial], Spieler[playerid][pSkin], Spieler[playerid][pFrakSkin],
    Spieler[playerid][pGeschlecht], Spieler[playerid][pPerso],
    Spieler[playerid][pCarLicense], Spieler[playerid][pCarLicensePoints],
    Spieler[playerid][pWanteds], GetName(playerid));
    strcat(mainQuery, secondQuery);



    format(secondQuery, sizeof(secondQuery), "`JobMoney`='%d', `JobCount`='%d', `BusSkill`='%d', `BusSkillEXP`='%d', `Tot`='%d', `TotUnix`='%d', `TotX`='%f', `TotY`='%f', `TotZ`='%f', `Kills`='%d', `Deaths`='%d', `Jailed`='%d', `JailTime`='%d', ",
    Spieler[playerid][pJobMoney], Spieler[playerid][pJobCount], Spieler[playerid][pBusSkill], Spieler[playerid][pBusSkillEXP],
    Spieler[playerid][pTot], Spieler[playerid][pTotUnix], Spieler[playerid][pTotX], Spieler[playerid][pTotY], Spieler[playerid][pTotZ],
    Spieler[playerid][pKills], Spieler[playerid][pDeaths], Spieler[playerid][pJailed], Spieler[playerid][pJailTime]);
    strcat(mainQuery, secondQuery);



    format(secondQuery, sizeof(secondQuery), "`Rank`='%d', `Verbrechen`='%d', `JailType`='%d', `Banned`='%d', `BanReason`='%s', `BanAdmin`='%s', `Erstehilfe`='%d', `GotMD5`='%d', ",
    Spieler[playerid][pRank], Spieler[playerid][pVerbrechen], Spieler[playerid][pJailType], Spieler[playerid][pBanned], Spieler[playerid][pBanReason], Spieler[playerid][pBanAdmin],
    Spieler[playerid][pErstehilfe], GotMD5[playerid]);
    strcat(mainQuery, secondQuery);



    format(secondQuery, sizeof(secondQuery), "`Number`='%d', `Handy`='%d', `HandyStatus`='%d', `HandyGuthaben`='%d', `Akku`='%f', `DetektivSkill`='%d', `DetektivSkillEXP`='%d', ",
    Spieler[playerid][pNumber], Spieler[playerid][pHandy], Spieler[playerid][pHandyStatus], Spieler[playerid][pHandyGuthaben], Spieler[playerid][pAkku], Spieler[playerid][pDetektivSkill], Spieler[playerid][pDetektivSkillEXP]);
    strcat(mainQuery, secondQuery);



    format(secondQuery, sizeof(secondQuery), "`PlayTime`='%d', `Warns`='%d', `Crimes`='%d', `JailVisits`='%d', `Eisen`='%d', `EisenSafe`='%d', `Marihuana`='%d', ",
    Spieler[playerid][pPlayTime], Spieler[playerid][pWarns], Spieler[playerid][pCrimes], Spieler[playerid][pJailVisits], Spieler[playerid][pEisen], Spieler[playerid][pEisenSafe], Spieler[playerid][pMarihuana]);
    strcat(mainQuery, secondQuery);



    format(secondQuery, sizeof(secondQuery), "`MarihuanaSafe`='%d', `Kanister`='%d', `Verheiratet`='%d', `VerheiratetName`='%s', `Bank`='%d', `Premium`='%d', `SkillPoints`='%d', `Lotto`='%d', ",
    Spieler[playerid][pMarihuanaSafe], Spieler[playerid][pKanister], Spieler[playerid][pVerheiratet], Spieler[playerid][pVerheiratetName], Spieler[playerid][pBank], Spieler[playerid][pPremium], Spieler[playerid][pSkillPoints], Spieler[playerid][pLotto]);
    strcat(mainQuery, secondQuery);



    format(secondQuery, sizeof(secondQuery), "`FlyLicense`='%d', `BoatLicense`='%d', `FishLicense`='%d', `GunLicense`='%d', `Zollpass`='%d', `Job`='%d', `Money`='%d', `QuitJob`='%d', `Boombox`='%d', `HaveBoombox`='%d', WHERE `Name`='%s'",
    Spieler[playerid][pFlyLicense], Spieler[playerid][pBoatLicense], Spieler[playerid][pFishLicense],
    Spieler[playerid][pGunLicense], Spieler[playerid][pZollpass], Spieler[playerid][pJob], GetMoney(playerid), Spieler[playerid][pQuitJob], Spieler[playerid][pBoombox], Spieler[playerid][pHaveBoombox], GetName(playerid));
    strcat(mainQuery, secondQuery);



    mysql_function_query(myCon, mainQuery, false, "", "");
    printf("%s", mainQuery);
    strdel(mainQuery, 0, sizeof(mainQuery));
    strdel(secondQuery, 0, sizeof(secondQuery));



    format(secondQuery, sizeof(secondQuery), "UPDATE `script_accounts` SET `Geschenk`='%d', `GeschenkCount`='%d' WHERE `Name`='%s'",
    Spieler[playerid][pGeschenk], Spieler[playerid][pGeschenkCount], GetName(playerid));
    strcat(mainQuery, secondQuery);



    mysql_function_query(myCon, mainQuery, false, "", "");
    printf("%s", mainQuery);
    strdel(mainQuery, 0, sizeof(mainQuery));
    strdel(secondQuery, 0, sizeof(secondQuery));



    // Neuer Query für Save
    format(secondQuery, sizeof(secondQuery), "UPDATE `script_accounts` SET `Muted`='%d', `MuteReason`='%s', `TruckSkill`='%d', `TruckSkillEXP`='%d', `SpawnChange`='%d', `PremiumZeit`='%d', ",
    Spieler[playerid][pMuted], Spieler[playerid][pMuteReason], Spieler[playerid][pTruckSkill], Spieler[playerid][pTruckSkillEXP], Spieler[playerid][pSpawnChange], Spieler[playerid][pPremiumZeit]);
    strcat(mainQuery, secondQuery);
    new xplTime = gettime();
    format(secondQuery, sizeof(secondQuery), "`FishSkill`='%d', `FishSkillEXP`='%d', `OrgMember`='%d', `Contract`='%d', `ContractCount`='%d', `LastLogin`='%d', `PilotSkill`='%d', `PilotSkillEXP`='%d', ",
    Spieler[playerid][pFishSkill], Spieler[playerid][pFishSkillEXP], Spieler[playerid][pOrgMember], Spieler[playerid][pContract], Spieler[playerid][pContractCount], xplTime, Spieler[playerid][pPilotSkill], Spieler[playerid][pPilotSkillEXP]);
    strcat(mainQuery, secondQuery);



    format(secondQuery, sizeof(secondQuery), "`HouseKey`='%d', `TotWorld`='%d', `Hitsound`='%d', `Messages`='%d', `Fished`='%d', `FishTime`='%d', `FishSperre`='%d', `SkillDrug`='%f', `Festgeld`='%d', `HatFestgeld`='%d', `BisFestgeld`='%d' WHERE `Name`='%s'",
    Spieler[playerid][pHouseKey], Spieler[playerid][pTotWorld], Spieler[playerid][pHitsound], Spieler[playerid][pMessages], Spieler[playerid][pFished], Spieler[playerid][pFishTime], Spieler[playerid][pFishSperre], Spieler[playerid][pSkillDrug], Spieler[playerid][pFestgeld], Spieler[playerid][pHatFestgeld], Spieler[playerid][pBisFestgeld], GetName(playerid));
    strcat(mainQuery, secondQuery);



    mysql_function_query(myCon, mainQuery, false, "", "");
    printf("%s", mainQuery);
    strdel(mainQuery, 0, sizeof(mainQuery));
    strdel(secondQuery, 0, sizeof(secondQuery));



    // Fish
    format(secondQuery, sizeof(secondQuery), "UPDATE `script_accounts` SET `FishID1`='%d', `FishID2`='%d', `FishID3`='%d', `FishID4`='%d', `FishID5`='%d',",
    Spieler[playerid][pFishID][1], Spieler[playerid][pFishID][2], Spieler[playerid][pFishID][3], Spieler[playerid][pFishID][4], Spieler[playerid][pFishID][5]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), " `Fishweight1`='%d', `Fishweight2`='%d', `Fishweight3`='%d', `Fishweight4`='%d', `Fishweight5`='%d' WHERE `Name`='%s'",
    Spieler[playerid][pFishweight][1], Spieler[playerid][pFishweight][2], Spieler[playerid][pFishweight][3], Spieler[playerid][pFishweight][4], Spieler[playerid][pFishweight][5], GetName(playerid));
    strcat(mainQuery, secondQuery);



    mysql_function_query(myCon, mainQuery, false, "", "");
    printf("%s", mainQuery);
    strdel(mainQuery, 0, sizeof(mainQuery));
    strdel(secondQuery, 0, sizeof(secondQuery));



    format(secondQuery, sizeof(secondQuery), "UPDATE `script_accounts` SET `CookID1`='%d', `CookID2`='%d', `CookID3`='%d', `CookID4`='%d', `CookID5`='%d',",
    Spieler[playerid][pCookID][1], Spieler[playerid][pCookID][2], Spieler[playerid][pCookID][3], Spieler[playerid][pCookID][4], Spieler[playerid][pCookID][5]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), " `CookHP1`='%d', `CookHP1`='%d', `CookHP1`='%d', `CookHP1`='%d', `CookHP1`='%d' WHERE `Name`='%s'",
    Spieler[playerid][pCookHP][1], Spieler[playerid][pCookHP][2], Spieler[playerid][pCookHP][3], Spieler[playerid][pCookHP][4], Spieler[playerid][pCookHP][5], GetName(playerid));
    strcat(mainQuery, secondQuery);



    mysql_function_query(myCon, mainQuery, false, "", "");
    printf("%s", mainQuery);
    strdel(mainQuery, 0, sizeof(mainQuery));
    strdel(secondQuery, 0, sizeof(secondQuery));


    Serverlog:

    und es klappt trd. net..


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

  • Um Dir genau zu helfen, benötigen wir folgende, synchrone Aufzeichnungen:


    1. Errorlogs.
    2. Was wird in die Datenbank geschrieben?
    3. Tabellenstruktur.



    Folgendes lässt sich nur durch das Lesen schon herausarbeiten:


    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 '`LSPDM4Rang`='1', `LSPDAKRang`='1', `LSPDMP5Rang`='1', `LSPDShotRang`='4', `LSPD' at line 1


    Irgendwas stimmt im Befehl nicht. Hinten dran bei "near..." zeigt Dir an, wo es in der Nähe zu dem Fehler kam.



    Edit: Deinen Log im Post davor zeigt übrigens keine Error an, zudem sind es andere Querys, die den Fehler nicht verursachten ;)


    Um einen Fehler zu finden, müssen wir andere erst ausmerzen. Sobald kein gravierender Error mehr vorhanden ist, können wir erst die Fehlersuche richtig beginnen. Nur so können wir systematisch Fehler ausschließen und/oder beheben.

    2 Mal editiert, zuletzt von Neavision ()

  • Hier der Code zu LSPDM4Rang und den Rest:


    public SaveOthers(){ new string[2048]; format(string, sizeof(string), "UPDATE `script_others` SET `Steuerklasse1`='%d', `Steuerklasse2`='%d', `Steuerklasse3`='%d', `Steuerklasse4`='%d', `Staatskasse`='%d', ", Others[Steuerklasse1], Others[Steuerklasse2], Others[Steuerklasse3], Others[Steuerklasse4], Others[Staatskasse]);// format(string, sizeof(string), "%s,`sDoppelRP`='%d', `sDoppelRPTime`='%d', ",string, Others[sDoppelRP], Others[sDoppelRPTime]); format(string, sizeof(string), "%s,`LSPDM4Rang`='%d', `LSPDAKRang`='%d', `LSPDMP5Rang`='%d', `LSPDShotRang`='%d', `LSPDRifleRang`='%d', `Registrationoff`='%d',`Samenverkauf`='%d', ",string, Others[LSPDM4Rang], Others[LSPDAKRang], Others[LSPDMP5Rang], Others[LSPDShotRang], Others[LSPDRifleRang],Others[Registrationoff],Others[Samenverkauf]); format(string, sizeof(string), "%s,`Samenpreis`='%d', `Lotto`='%d', `Waffentransport`='%d',`WantedGrund1`='%s', `WantedGrund2`='%s', `WantedGrund3`='%s', `WantedGrund4`='%s', `WantedGrund5`='%s', `WantedGrund6`='%s',`WantedGrund7`='%s',`WantedGrund8`='%s', `WantedGrund9`='%s', `WantedGrund10`='%s', ",string, Others[Samenpreis], Others[Lotto],Others[Waffentransport],Others[WantedGrund1], Others[WantedGrund2], Others[WantedGrund3], Others[WantedGrund4], Others[WantedGrund5],Others[WantedGrund6],Others[WantedGrund7],Others[WantedGrund8], Others[WantedGrund9],Others[WantedGrund10]); format(string, sizeof(string), "%s,`WantedAnzahl1`='%d',`WantedAnzahl2`='%d',`WantedAnzahl3`='%d',`WantedAnzahl4`='%d',`WantedAnzahl5`='%d',`WantedAnzahl6`='%d',`WantedAnzahl7`='%d',`WantedAnzahl8`='%d',`WantedAnzahl9`='%d',`WantedAnzahl10`='%d'",string, Others[WantedAnzahl1],Others[WantedAnzahl2],Others[WantedAnzahl3],Others[WantedAnzahl4],Others[WantedAnzahl5],Others[WantedAnzahl6],Others[WantedAnzahl7],Others[WantedAnzahl8],Others[WantedAnzahl9],Others[WantedAnzahl10]); // printf("%s",string); mysql_function_query(myCon, string, false, "", ""); return 1;}


    Habs selber geklärt, ich habe pGPSIZDA geändert auf gps und bei dem Code hier oben bei %s den Komma weggemacht also %s `LSPD.....`


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

    Einmal editiert, zuletzt von Kevin_CaruZo ()

  • C
    public SaveOthers()
    { 
        new string[2048]; format(string, sizeof(string), "UPDATE `script_others` SET                                                                                     `Steuerklasse1`='%d', `Steuerklasse2`='%d', `Steuerklasse3`='%d', `Steuerklasse4`='%d', `Staatskasse`='%d',",

    Bei Staatskasse "`Staatskasse`='%d'," <- ist es da nicht so und bei allen Querys, dass die Abfrage noch denkt da kommt etwas noch dazu/hinter?
    Wegen dem Komma am ende der Abfrage


    Mit freundlichen Grüßen,
    PrimeTV.

  • guck mal die unteren Zeilen an, ich habe das mit mehreren Strings gemacht.


    hier zsuehen:

    new string[2048];
    format(string, sizeof(string), "UPDATE `script_others` SET `Steuerklasse1`='%d', `Steuerklasse2`='%d', `Steuerklasse3`='%d', `Steuerklasse4`='%d', `Staatskasse`='%d', ",
    Others[Steuerklasse1], Others[Steuerklasse2], Others[Steuerklasse3], Others[Steuerklasse4], Others[Staatskasse]);



    // format(string, sizeof(string), "%s,`sDoppelRP`='%d', `sDoppelRPTime`='%d', ",string, Others[sDoppelRP], Others[sDoppelRPTime]);



    format(string, sizeof(string), "[color=#FF0000]%s[/color]`LSPDM4Rang`='%d', `LSPDAKRang`='%d', `LSPDMP5Rang`='%d', `LSPDShotRang`='%d', `LSPDRifleRang`='%d', `Registrationoff`='%d',`Samenverkauf`='%d', ",[color=#FF0000]string,[/color]
    Others[LSPDM4Rang], Others[LSPDAKRang], Others[LSPDMP5Rang], Others[LSPDShotRang], Others[LSPDRifleRang],Others[Registrationoff],Others[Samenverkauf]);



    format(string, sizeof(string), "%s`Samenpreis`='%d', `Lotto`='%d', `Waffentransport`='%d',`WantedGrund1`='%s', `WantedGrund2`='%s', `WantedGrund3`='%s', `WantedGrund4`='%s', `WantedGrund5`='%s', `WantedGrund6`='%s',`WantedGrund7`='%s',`WantedGrund8`='%s', `WantedGrund9`='%s', `WantedGrund10`='%s', ",string,
    Others[Samenpreis], Others[Lotto],Others[Waffentransport],Others[WantedGrund1], Others[WantedGrund2], Others[WantedGrund3], Others[WantedGrund4], Others[WantedGrund5],Others[WantedGrund6],Others[WantedGrund7],Others[WantedGrund8], Others[WantedGrund9],Others[WantedGrund10]);

    format(string, sizeof(string), "%s`WantedAnzahl1`='%d',`WantedAnzahl2`='%d',`WantedAnzahl3`='%d',`WantedAnzahl4`='%d',`WantedAnzahl5`='%d',`WantedAnzahl6`='%d',`WantedAnzahl7`='%d',`WantedAnzahl8`='%d',`WantedAnzahl9`='%d',`WantedAnzahl10`='%d'",string,
    Others[WantedAnzahl1],Others[WantedAnzahl2],Others[WantedAnzahl3],Others[WantedAnzahl4],Others[WantedAnzahl5],Others[WantedAnzahl6],Others[WantedAnzahl7],Others[WantedAnzahl8],Others[WantedAnzahl9],Others[WantedAnzahl10]);



    printf("%s",string);


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents