Mysql speichert Accounts nicht ab

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
  • Hay, Breafish,
    Ich bins mal wieder^^, also die Accounts werden nicht gespeichert ich verwende das Mysql Plugin von BlueG R6.


    SavePlayer:
    new query[128], GetName[MAX_PLAYER_NAME];
    mysql_real_escape_string(SpielerName(playerid), GetName);
    format(query, 128, "UPDATE `accounts` SET `Level`='%d', `Geld`='%d', `Kills`='%d', `Tode`='%d', `Health`='%f',`Land`='%d', `Geschlecht`='%d', `Alter`='%d', ´Fraktion´='%d', `fRank`=`%d`, `Wanteds`='%d', `Adminlevel`='%d', `CarLic`='%d', `LKWLic`='%d', `BootLic`='%d', `BusLic`='%d', `WaffenLic`='%d', `FlugLic`='%d', `HeliLic`='%d', `BikeLic`='%d' WHERE `Name`='%s'",
    Spieler[playerid][pLevel],Spieler[playerid][pGeld],Spieler[playerid][pKills],Spieler[playerid][pTode],Spieler[playerid][pHealth],Spieler[playerid][pLand],Spieler[playerid][Geschlecht],
    Spieler[playerid][pAlter],Spieler[playerid][Fraktion], Spieler[playerid][fRank], Spieler[playerid][Wanteds], Spieler[playerid][Adminlevel], Spieler[playerid][CarLic], Spieler[playerid][LKWLic],
    Spieler[playerid][BootLic], Spieler[playerid][BusLic], Spieler[playerid][WaffenLic], Spieler[playerid][FlugLic], Spieler[playerid][HeliLic], Spieler[playerid][BikeLic],GetName);
    mysql_query(query);
    #if defined Debug
    printf("Save Query1 von %s wurde gesendet!", SpielerName(playerid));
    #endif

    format(query, 128, "UPDATE `accounts` SET `LasPosX`='%f', `LastPosY`='%f', `LastPosZ`='%f', `LastPosA`='%d', `JailTime`=`%d`, `Beruf`='%d', `PayDayZeit`='%d', `Lohn`='%d' WHERE `Name`='%s'",
    Spieler[playerid][LastPosX], Spieler[playerid][LastPosY], Spieler[playerid][LastPosZ], Spieler[playerid][LastPosA], Spieler[playerid][JailTime], Spieler[playerid][Beruf], Spieler[playerid][PayDayZeit], GetName);
    mysql_query(query);
    #if defined Debug
    printf("Save Query2 von %s wurde gesendet!", SpielerName(playerid));
    #endif

    Mit freundlichen Grüßen,
    Chriss aka. xDesertx

  • Habe teste mal.


    //Edit:
    Funktioniert nicht. Hier mal den mysql-log:
    [17:25:02] >> mysql_query( Connection handle: 1 )
    [17:25:02] CMySQLHandler::Query(UPDATE `accounts` SET `Level`='1', `Geld`='1500', `Kills`='0', `Tode`='0', `Health`='0.000000',`Land`='1', `Geschlecht`='1', `Alter`='13', ´Fraktion´='0', `fRank`='0', `Wanteds`='0', `Adminlevel`='0', `CarLic`='0', `LKWLic`='0', `BootLic`='0', `BusLic`='0', `WaffenLic`='0', `FlugLic`='0', `HeliLic`='0', `BikeLic`='0' WHERE `Name`='Chriss_Zabel') - An error has occured. (Error ID: 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 '´Fraktion´='0', `fRank`='0', `Wanteds`='0', `Adminlevel`='0', `CarLic`='0', `LKW' at line 1)
    [17:25:02] >> mysql_query( Connection handle: 1 )
    [17:25:02] CMySQLHandler::Query(UPDATE `accounts` SET `LasPosX`='-2337.208740', `LastPosY`='-103.331069', `LastPosZ`='35.319999', `LastPosA`='1103332796', `JailTime`='-52', `Beruf`='0', `PayDayZeit`='0', `Lohn`='67' WHERE `Name`='') - An error has occured. (Error ID: 1054, Unknown column 'LasPosX' in 'field list')

    Mit freundlichen Grüßen,
    Chriss aka. xDesertx

    3 Mal editiert, zuletzt von [YFL]Chrisss ()

  • Warum nicht Alter? ALter ist ein MySQL Befehl, den kannst du nicht für eine Spalte benutzen.


    Doch kannst du


    Musst ihn aber mit ` eingrenzen


    Also aus Alter -> `Alter`


    Außerdem seitwann werden %d (Double Werte) im String gespeichert?
    Gemeint ist hier das
    `fRank`='%d',
    Es müsste
    fRank = %i
    sein ganz einfach :)


    Die ` Zeichen braucht man nur, wenn es von mysql verwendete Schlüsselwörter sind.

    ik bin der vito c:


  • Doch kannst du Musst ihn aber mit ` eingrenzen


    Danke, das war mir nicht bekannt. Gut zu wissen.



    %d steht auch für Intergers, das kann man bedenkenlos verwenden.


    Der Fehler in der ersten Zeile liegt hier:
    ´Fraktion´='0',
    zu:
    `Fraktion`='0',
    Die Haken waren falschrum.