Spieler wird nicht gespeichert (MySQL)

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,


    also mein Account wird zwar geladen, doch es wird nicht gespeichert.
    Zum Test habe ich einen Befehl gemacht, mit dem man den Army-Skin bekommt.
    Danach habe ich mich ausgeloggt aus dem Server.
    Mein Account wurde nicht gespeichert.



    public SavePlayer(playerid)
    {
    new query[128];
    format(query,sizeof(query),"UPDATE user SET Admin='%i',Supporter='%i',Level='%i'Geld='%i',Skin='%i',Fahndungslevel='%i',Fraktion='%i',Leader='%i',Rang='%i',Job='%i',Drogen='%i',Zigaretten='%i',Materialen='%i',Autoschein='%i',Motorradschein='%i,Flugschein='%i',Bootschein='%i',Lkwschein='%i',Waffenschein='%i',Haftzeit='%i',Adminprison='%i',Timeban='%i',Gebannt='%i' WHERE id='%i'",
    pInfo[playerid][pAdmin],pInfo[playerid][pSupporter],GetPlayerScore(playerid),GetPlayerMoney(playerid),GetPlayerSkin(playerid),GetPlayerWantedLevel(playerid),pInfo[playerid][pFraktion],pInfo[playerid][pLeader],pInfo[playerid][pRang],pInfo[playerid][pJob],pInfo[playerid][pDrogen],pInfo[playerid][pZigaretten],pInfo[playerid][pMaterialen],
    pInfo[playerid][pAutoschein],pInfo[playerid][pMotorradschein],pInfo[playerid][pFlugschein],pInfo[playerid][pBootschein],pInfo[playerid][pLkwschein],pInfo[playerid][pWaffenschein],pInfo[playerid][pJailTime],pInfo[playerid][pAdminPrison],pInfo[playerid][pTimeban],pInfo[playerid][pGebannt],pInfo[playerid][dbID]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    if(pInfo[playerid][eingeloggt] == true)
    {
    SavePlayer(playerid);
    }
    return 1;
    }


    Bitte hilft mir!

  • Bitte hilft mir!


    Das liegt daran das dein deklarierter string zu klein ist und nur 128 Zeichen maximal fassen kann. Jedoch benötigt der Sql-Befehl, welchen du ausführen lassen möchtest 351 zeichen.
    Das resultat du sendest ein abgehacktes query an den mysql server, dieser kann den befehl nicht verarbeiten und es sollte dir eine Fehlermeldung ausgegeben werden in der mysqllog.
    Solltest du die mysqllog nicht haben so liegt dies daran das du diese nicht unter OnGameModeInit aktiviert hast mit der funktion.


    mysql_log(LOG_DEBUG,LOG_TYPE_TEXT);


    Dennoch kannst du die Fehler auch anzeigen lassen in der Konsole dazu einfach das callback OnQueryError hinzufügen.


    public OnQueryError(errorid, error[], callback[], query[], connectionHandle) {
    printf("Errorid %d",errorid);
    print(error);
    print(callback);
    print(query);
    return 1;
    }