MySQL.log -> Error #1064

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 ich möchte meinen Spieler speichern durch einen Public, doch das klappt irgendwie nicht.
    Mein Account wird zwar geladen, doch nicht gespeichert.
    Hier ist meine MySQL.log:


    [19:47:11] [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 'Geld='0',Skin='287',Fahndungslevel='0',Fraktion='0',Leader='0',Rang='0',Job=' at line 1



    Und außerdem noch mein SavePlayer:



    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 SavePlayer(playerid)
    {
    new query[1024];
    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;
    }


    zwichen Level='%i' und Geld='%i' fehlte ein ,


    zudem war dein String zu klein.

    Ich helfe gerne, aber nur wenn die andere Person wenigstens versucht es zu schaffen.
    Solange sie nicht so dreist sind und mich beim Zocken zuspammen.

  • bleibt die Fehlermeldung gleich? Es bringt nicht viel wenn nur als Rückmeldung "Geht nicht! HILFE!" kommt ohne zusätzliche Informationen ;)

    Ich helfe gerne, aber nur wenn die andere Person wenigstens versucht es zu schaffen.
    Solange sie nicht so dreist sind und mich beim Zocken zuspammen.

  • Die Fehlermeldung bleibt gleich, ich kann mir vorstellen, dass ich einen Fehler beim Geld='%i' habe oder dort in der Nähe.
    Ich bin ein MySQL Anfänger, bitte hilft mir.


    //Edit:


    Ich hatte irgendwo anders auch einen Komma vergessen, habe diesen gemacht.
    Bekomme nun keine(n) Fehler bei der MySQL.log, doch mein Account wird nicht gespeichert.

  • im MySQL Log wird am ende dieses Query wohl auftauchen, schaue mal ob da steht das es Erfolgreich ausgeführt (Successfully executed.) wurde oder ob da etwas anderes kommt.

    Ich helfe gerne, aber nur wenn die andere Person wenigstens versucht es zu schaffen.
    Solange sie nicht so dreist sind und mich beim Zocken zuspammen.

  • public SavePlayer(playerid)
    {
    new query[1024];
    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;
    }


    Der fehler sagte aus das ein Fehler mit den ' vorlag, da fehler einer bei Motorradschein

    Ich helfe gerne, aber nur wenn die andere Person wenigstens versucht es zu schaffen.
    Solange sie nicht so dreist sind und mich beim Zocken zuspammen.


  • wie jetzt?

  • Satzbaufehler \o/


    Wollte eig schreiben: Der Fehler sagt aus das ein fehler mit den ' vorlag, Bei Motorradschein Fehlte am ende ein ', diesen habe ich gesetzt.

    Ich helfe gerne, aber nur wenn die andere Person wenigstens versucht es zu schaffen.
    Solange sie nicht so dreist sind und mich beim Zocken zuspammen.

  • Das vereinigt sich nicht. Wenn das Update fehlschlägt wird auch eine Fehlermeldung ausgeben.


    Prüfe am besten mal nach ob alles was du Updaten willst in der Datenbank auch genauso heißt. Also auch Groß und kleinschreibung beachten.

    Ich helfe gerne, aber nur wenn die andere Person wenigstens versucht es zu schaffen.
    Solange sie nicht so dreist sind und mich beim Zocken zuspammen.

  • Also irgendwie geht das trotzdem nicht, ich verwende eine Funktion die "eingeloggt" heißt, diese ist ein boolean. Man kann diese mit true/false definieren und wenn der Spieler eingeloggt ist (true), dann wird sein Account gespeichert beim OnPlayerDisconnect
    Hier mal mein OnPlayerDisconnect



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