Problem mit der Accountspeicherung (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
  • Hallo,


    ich habe mal wieder ein Problem mit MySQL. Duch einen Umstieg auf ein anderes MySQL Plugin musste ich meine ganzen Befehle umschreiben. Nun funktioniert soweit alles außer der Accountspeicherung....
    Mein Code sieht so aus:
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1) //Und hier ob er noch eingeloggt ist.
    {
    new query[256];
    SpielerInfo[playerid][pLevel] = GetPlayerScore(playerid);
    SpielerInfo[playerid][pGeld] = GetPlayerMoney(playerid);
    SpielerInfo[playerid][pSkin] = GetPlayerSkin(playerid);
    format(query,sizeof(query),"UPDATE accounts SET Level='%i', Geld='%i', Konto='%i', Kills='%i', Tode='%i', Admin'%i%', Skin='%i', Sex='%i', PayDay='%i', Lohn='%i', Leader='%i', Member='%i' ,Rang='%i' WHERE Name='%s'",
    SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld], SpielerInfo[playerid][pKonto], SpielerInfo[playerid][pKills], SpielerInfo[playerid][pTode], SpielerInfo[playerid][pAdmin], SpielerInfo[playerid][pSkin], SpielerInfo[playerid][pSex], SpielerInfo[playerid][pPayDay], SpielerInfo[playerid][pLohn], SpielerInfo[playerid][pLeader], SpielerInfo[playerid][pMember], SpielerInfo[playerid][pRang], SpielerInfo[playerid][pName]);
    mysql_function_query(dbhandle,query,false,"SavedPlayer","i",playerid);
    new string[128];
    format(string,sizeof(string),"%s",mysql_errno(dbhandle));
    print(string);
    }
    }
    return 1;
    }


    public SavedPlayer(playerid)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Dein Account wurde erfolgreich gespeichert.");
    return 1;
    }


    Nun wird das leider nicht ausgeführt und in die Konsole wird nur "(null)" geschrieben. Ich weiß nicht mehr weiter und möchte euch um Hilfe bitten.
    Danke schonmal im Vorraus.


    MfG


    John_McClain

  • Okay die fertig formatierte Query sieht so aus:

    SQL
    UPDATE accounts SET Level='1', Geld='50000', Konto='0', Kills='0', Tode='0', Admin'5', Skin='1', Sex='0', PayDay='0', Lohn='0', Leader='0', Member='0' ,Rang='0' WHERE Name='John_McClain'


    Aber es wird nichts gespeichert...
    Die mysql_log sieht so aus:

    Code
    [15:12:44] [ERROR] CMySQLQuery::Execute[SavedPlayer(i)] - (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 ''0', Skin='1', Sex='0', PayDay='0', Lohn='0', Leader='0', Member='0' ,Rang='0' W' at line 1

  • Schonwieder so ein kleiner Fehler... Danke ich probiers gleich mal aus :D


    Okay es musste heißen
    Admin='%i'
    also auch das 2. Prozent weg. Jetzt funktioniert alles und ich kann endlich mit meinem Carsystem weiter machen.
    Das Public SavedPlayer hatte ich rein gemacht, damit man eine Meldung bekommt, nachdem der Account erfolgreich gespeichert wurde. Außerdem habe ich daran ja erkannt, dass die Abfrage nicht richtig funktioniert.
    Danke an euch.