MySQL Speichern geht nicht

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
  • Heyho! Ich habe einiges zu meinem "SpielerSpeichern" hinzugefügt und nun gibt er mir diesen Error. Ich habe schon mehrmals drüber geschaut und weiß nicht wo der Fehler ist. Ausserdem will ich, dass der Spieler nach dem Registrieren gespeichert wird, damit es zu keinen Bugs führt aber ich hab es jetzt schon oft versucht und verschiedene Dinge ausprobiert aber er will einfach nicht den stock ausführen...


    Das ist in der Console:


    Code
    [01:39:34] <<< UPDATE accounts SETLevel='1',Geld='150',Skin='21',Alter='0',Geschlecht='1',Admin='0',Gebannt='0',Fraktion='0',Rank='0',Wanteds='0'WHERE ID='24' >>>


    und das in der mysql_log.log


    Code
    [01:44:14] [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 'Alter='0', Geschlecht='1', Admin='0', Gebannt='0', Fraktion='0', Rank='0', Wante' at line 1


    Hier ist mein SpielerSpeichern stock


    stock SpielerSpeichern(playerid){


    if(sInfo[playerid][pEingeloggt] == 0) return 1;
    new query[1024];
    format(query,sizeof(query),"UPDATE accounts SET Level='%i', Geld='%i', Skin='%i', Alter='%i', Geschlecht='%i', Admin='%i', Gebannt='%i', Fraktion='%i', Rank='%i', Wanteds='%i' WHERE ID='%i'", sInfo[playerid][pLevel], sInfo[playerid][pGeld], sInfo[playerid][pSkin], sInfo[playerid][pAlter], sInfo[playerid][pGeschlecht], sInfo[playerid][pAdmin], sInfo[playerid][pBan], sInfo[playerid][pFrak], sInfo[playerid][pRank], sInfo[playerid][pWanted], sInfo[playerid][pDBID]);
    mysql_function_query(mysql,query,false,"","");
    printf("<<< %s >>>",query); // Speicher Debug
    return 1;
    }

    Mit freundlichen Grüßen,
    Derakar

  • Okay, jetzt geht es ^^.


    ABER Ich möchte, dass das Script nach dem Registrieren den Spieler einmal speichert. Macht er aber nicht....


    RegisterSpieler: (Das Speichern hab ich wieder rausgenommen)



    stock RegisterSpieler(playerid){
    PlayerTextDrawHide(playerid, SB_BG);
    PlayerTextDrawHide(playerid, SB_NICK);
    PlayerTextDrawHide(playerid, SB_PASS);
    PlayerTextDrawHide(playerid, SB_NICKFELD);
    PlayerTextDrawHide(playerid, SB_PASSFELD);
    PlayerTextDrawHide(playerid, SB_SN);
    PlayerTextDrawHide(playerid, SB_REGISTER);
    PlayerTextDrawHide(playerid, SB_LOGIN);
    CancelSelectTextDraw(playerid);
    TextDrawShowForPlayer(playerid,Datum);
    TextDrawShowForPlayer(playerid,Uhr);


    SetPlayerScore(playerid,sInfo[playerid][pLevel]);
    GivePlayerMoney(playerid,150);
    SetPlayerColor(playerid, WEISS);
    new randM = random(sizeof(SkinM)), randW = random(sizeof(SkinW));
    new Skin1 = SkinM[randM];
    new Skin2 = SkinW[randW];
    if(sInfo[playerid][pGeschlecht] == 1){
    SetSpawnInfo( playerid, 0, Skin1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
    sInfo[playerid][pSkin] = Skin1;
    } else if(sInfo[playerid][pGeschlecht] == 2){
    SetSpawnInfo( playerid, 0, Skin2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
    sInfo[playerid][pSkin] = Skin2;
    }


    sInfo[playerid][pGeld] = GetPlayerMoney(playerid);
    sInfo[playerid][pEingeloggt] = 1;
    sInfo[playerid][pLevel] = 1;


    SpawnPlayer(playerid);
    SetPlayerPos(playerid,1511.8359, -1713.5916, 14.0469);
    return 1;
    }

    Mit freundlichen Grüßen,
    Derakar

  • Direkt nach dem Klicken auf Registrieren.



    public AfterRegister(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,mysql);
    if(num_rows == 1){
    sInfo[playerid][pDBID] = cache_get_field_content_int(0,"ID",mysql);
    }
    return 1;
    }


    da ist der Registerbutton auch nochmal:


    if(playertextid == SB_REGISTER){
    new str[50],query[1024],query2[1024],passwort[35];
    GetPVarString(playerid,"PasswortText", str,sizeof(str));
    mysql_escape_string(str,passwort,mysql);
    format(query,sizeof(query),"INSERT INTO accounts (Name,Passwort) VALUES ('%s',MD5('%s')) ",SpielerName(playerid),passwort);
    mysql_function_query(mysql,query,false,"","");
    format(query2,sizeof(query2),"SELECT ID FROM accounts WHERE Name='%s'",SpielerName(playerid));
    mysql_function_query(mysql,query2,true,"AfterRegister","i",playerid);
    ShowPlayerDialog(playerid,DIALOG_GESCHLECHT,0,"{FF9E00}Wähle dein Geschlecht","Wähle nun dein Geschlecht, mit welchem du auf dem Server spielen möchtest.\nDu kannst natürlich auch dein echtes bentzen.", "Männlich", "Weiblich");
    }

    Mit freundlichen Grüßen,
    Derakar