Mysql Fehler

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 wenn ich mich auslogge aus samp bekomme ich folgenden fehler ;)



    [16:38:22] [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 ''3'' at line 1

  • format(query,sizeof(query),"UPDATE user SET level='%i',geld='%i',alevel'%i'",sDaten[playerid][level],GetPlayerMoney(playerid),sDaten[playerid][alevel]);
    zu:
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(query,sizeof(query),"UPDATE user SET level='%i',geld='%i',alevel='%i' WHERE name = '%s'",sDaten[playerid][level],GetPlayerMoney(playerid),sDaten[playerid][alevel], name);

  • Du kannst es so schreiben, dann kannst du nach Zeile 10 immer wie in Zeile 10 den Code weiterführen:
    Speichern(playerid)
    {
    if(sDaten[playerid][eingeloggt]==0)return 1;
    new query[256], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(query,sizeof(query),"UPDATE user SET ");
    format(query,sizeof(query),"%slevel='%i'",query,sDaten[playerid][level]);
    format(query,sizeof(query),"%s,geld='%i'",query,GetPlayerMoney(playerid));
    format(query,sizeof(query),"%s,alevel='%i'",query,sDaten[playerid][alevel]);
    format(query,sizeof(query),"%s,wasanderes='%i'",query,sDaten[playerid][wasanderes]);
    //...
    format(query,sizeof(query)," WHERE name = '%s'",name);
    mysql_function_query(sqlhandle,query,false,"","");
    return 1;
    }


  • //Kannst auch ganz unten diesen Stock erstellen und dann diesen bei name = '%s' immer benutzen. Hier so würde es aussehen:


    stock sName(playerid)
    {
    new name[MAX_PLAYER_NAME]
    GetPlayerName(playerid, name, sizeof(name));
    return name;
    }


    //und dann halt wie gesagt immer statt die new's zu erstellen, um dann am Ende des Formats ein "name" reinzupacken
    //sName(playerid); schreiben statt name. sName ist dann so gesagt global definiert und immer nutzbar. Bei einer Schleife
    //zum Beispiel bei der hier:
    for(new i = 0; i < MAX_PLAYERS; i++)
    {


    }
    benutzt du sName(i); , wenns dazu kommt.