MySQL Speicher nix

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
  • 1. MySQL Log:

    Code
    [17:24:03] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'BarGeld='85', BankKonto='0', BankGeld='0',Skin='0', Fraktion='0', FraktionRang='' at line 1

    ServerLog


    Code
    [17:24:03] BarGeld='85', BankKonto='0', BankGeld='0',Skin='0', Fraktion='0', FraktionRang='0', Spawn='0', Handy='0', Handynummer='0'PayDay='0', Spielzeit='0', Jail='0', JailTime='0', Prison='0', PrisonCheckpoints='0' WHERE username='justSh4kr0n'
    [17:24:03] [part] justSh4kr0n has left the server (0:1)
  • Meine Funktion:


  • Es muss so aussehen, so habe ich es dir auch gepostet:
    stock SpielerSpeichern(playerid)
    {
    if(sInfo[playerid][pEingeloggt] == 0)return 1;
    new query[1024], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);

    format(query, sizeof(query), "UPDATE user SET Age='%i', Geschlecht='%i', AdminLevel='%i', Mapper='%i', Scripter='%i', Premium='%i', Level='%i', Respektpunkte='%i', ",
    sInfo[playerid][pAge], sInfo[playerid][pSex], sInfo[playerid][pAdminLevel], sInfo[playerid][pMapper], sInfo[playerid][pScripter],
    sInfo[playerid][pPremium], sInfo[playerid][pLevel], sInfo[playerid][pRespektpunkte]);

    format(query, sizeof(query), "%sBarGeld='%i', BankKonto='%i', BankGeld='%i',Skin='%i', Fraktion='%i', FraktionRang='%i', Spawn='%i', Handy='%i', Handynummer='%i', ",
    query, GetPlayerMoney(playerid), sInfo[playerid][pBankKonto], sInfo[playerid][pBankGeld],sInfo[playerid][pSkin], sInfo[playerid][pFraktion],
    sInfo[playerid][pFraktionRang], sInfo[playerid][pSpawn], sInfo[playerid][pHandy], sInfo[playerid][pHandynummer]);

    format(query, sizeof(query), "%sPayDay='%i', Spielzeit='%i', Jail='%i', JailTime='%i', Prison='%i', PrisonCheckpoints='%i' WHERE username='%s'",
    query, sInfo[playerid][pPayDay], sInfo[playerid][pSpielzeit], sInfo[playerid][pJail], sInfo[playerid][pJailTime],
    sInfo[playerid][pPrison], sInfo[playerid][pPrisonCheckpoints], name);

    mysql_function_query(Handle, query, false, "", "");
    return 1;
    }


    Du hast die Query-Übergabe jeweils entfernt.

  • Das ist eigentlich egal... weil es garnicht reingeschrieben wird in der DatenBank


    So create ich mein Player:



    Wenn ich nach dem Registrieren Tab drücke habe ich 1 Level... aber wenn ich relogg ist es weg...

    Einmal editiert, zuletzt von Marschl () aus folgendem Grund: überarbeitet :D

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Das steht in im Log:



    Code
    [13:58:33] [join] justSh4kr0n has joined the server (0:127.0.0.1)
    [13:58:48] UPDATE CoR_accounts SET AdminLevel='0',Tutorial='0',Level='1',BarGeld='3000' WHERE ID='0'
    [13:58:49] [part] justSh4kr0n has left the server (0:1)

    Aber in der Datenbank sieht es so aus:


    http://prntscr.com/a33z3n


    Gruß

  • Die ID passt nicht zu der in der Datenbank, wie schon auf der 1 Seite...

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

  • Poste bitte den Code zu dem Print.
    [13:58:48] UPDATE CoR_accounts SET AdminLevel='0',Tutorial='0',Level='1',BarGeld='3000' WHERE ID='0'


    Das ist ja nicht der aus SpielerSpeichern.

    Doch, ....
    hier meine Funktion

  • Lasse es dann über den Name speichern:
    public SavePlayer(playerid)
    {
    if(pInfo[playerid][pLogin] == 1)
    {
    new query[1048], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(query, sizeof(query), "UPDATE "SERVERTAG"_accounts SET AdminLevel='%d',Tutorial='%d',Level='%d',BarGeld='%d' WHERE Username='%s'", pInfo[playerid][pAdminLevel], pInfo[playerid][pTutorial], GetPlayerScore(playerid), GetPlayerMoney(playerid), name);
    mysql_tquery(Handle, query);
    printf(query);
    }
    return 1;
    }
    Das ist vom Prinzip her das Gleiche.


    Alternativ musst du beim Login/Register prüfen, warum die ID nicht richtig gesetzt wird.

  • Im Log steht jetzt bei Username eine Zahl ;D

    Code
    [15:00:51] [join] justSh4kr0n has joined the server (0:127.0.0.1)
    [15:01:12] UPDATE CoR_accounts SET AdminLevel='0',Tutorial='0',Level='1',BarGeld='3000' WHERE Username='106'
    [15:01:12] [part] justSh4kr0n has left the server (0:1)
  • [17:24:03] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'BarGeld='85', BankKonto='0', BankGeld='0',Skin='0', Fraktion='0', FraktionRang='' at line 1


    FraktionRang ist übrigends leer...


    Hast du beim ändern von ID auf Usernamen auch von %i auf %s gewechselt? @Jeffry hat diese änderung in seinem Quellcode vergessen.

    saphire.one

    Founder