MySQL Probleme

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,


    meine MySQL gibt mir heute mal wieder falsche Daten aus und ich weiß nicht genau wo das Problem liegt.


    Dieser Fehler wird mit von der MySQL Log ausgegeben


    Code
    [10:45: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 'gesamtrp = '12' ,WHERE id = '2'' at line 1


    Codeleisten aus dem Script die dies beinhalten



    stock SaveUserStats(playerid)
    {
    //Wenn der Spieler nicht eingeloggt ist, dann speichere seine Statistiken nicht
    if(!PlayerInfo[playerid][pLoggedIn]) return 1;



    //Ansonsten speichere sie
    new query[256];
    mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', Konto = '%d', kills = '%d', deaths = '%d' gesamtrp = '%d' ,WHERE id = '%d'",
    PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKonto], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths],PlayerInfo[playerid][pRPg], PlayerInfo[playerid][p_id]);
    mysql_pquery(handle, query);
    return 1;
    }



    forward OnUserLogin(playerid);
    public OnUserLogin(playerid)
    {
    //Query wurde ausgeführt und das Ergebnis im Cache gespeichert
    if(cache_get_row_count() == 0)
    {
    //Der Spieler hat ein falsches Passwort eingegeben
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Falsches Passwort!", "Ok", "Abbrechen");
    }
    else
    {
    //Es existiert ein Ergebnis, das heißt der Spieler hat das richtige Passwort eingegeben
    //Wir lesen nun die erste Zeile des Caches aus (ID 0)
    SpawnPlayer(playerid);
    PlayerInfo[playerid][p_id] = cache_get_field_content_int(0, "id", handle);
    PlayerInfo[playerid][pLevel] = cache_get_field_content_int(0, "level", handle);
    PlayerInfo[playerid][pRespektpunkte] = cache_get_field_content_int(0, "pRP", handle);
    PlayerInfo[playerid][pRPg] = cache_get_field_content_int(0, "gesamtrp", handle);
    PlayerInfo[playerid][admin_level] = cache_get_field_content_int(0, "admin_level", handle);
    PlayerInfo[playerid][pMoney] = cache_get_field_content_int(0, "money", handle);
    PlayerInfo[playerid][pKonto] = cache_get_field_content_int(0, "Konto", handle);
    PlayerInfo[playerid][pKills] = cache_get_field_content_int(0, "kills", handle);
    PlayerInfo[playerid][pDeaths] = cache_get_field_content_int(0, "deaths", handle);
    PlayerInfo[playerid][pPaytime] = cache_get_field_content_int(0, "paytime", handle);
    PlayerInfo[playerid][pJobMoney] = cache_get_field_content_int(0, "JobMoney", handle);
    PlayerInfo[playerid][pRPg] = cache_get_field_content_int(0, "gesamtrp", handle);



    PlayerInfo[playerid][pLoggedIn] = true;
    GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
    loadPlayerCars(playerid);





    }
    return 1;
    }

  • Soweit ich weis, darf nach dem letzen "variable=wert" kein Komma kommen.
    Hab das oben mal geändert ...

    Mit freundlichem Gruß
    Weper

  • Du meinst nach


    Code
    WHERE id = '%d'",

    ?


    Das ist in jedenfall Richtig.


    Nur scheint er irgendein Problem mit der Datenbank zu haben so das er da nicht reinschreiben kann


    // Fehler eigenständig behoben


    mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', Konto = '%d', kills = '%d', [b]deaths = '%d'[/b] gesamtrp = '%d' WHERE id = '%d'",



    Fehlte nur ein komma dann kein wunder

    Einmal editiert, zuletzt von robbi2304 ()