[Problem] Mysql Dantenbank lad alles, aber speichert nichts!

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
  • Hallo zusammen:


    Also meine Mysql Dantenbank lad alles, aber speichert nichts.


    Wenn der Spieler sich einloggt, wird die Varialble auf 1 gesetzt, also:


    sInfo[playerid][eingeloggt]=1;


    und das Spielerspeichern: (klappt leider nicht, warum?)



    savePlayer(playerid)
    {
    if(sInfo[playerid][eingeloggt]==0)return 1;
    new query[256];
    format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i,rang='%i',spawnchange='%i' WHERE id='%i'",sInfo[playerid][level],
    GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo,sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }
    (sry PWN Quelle ging net :(


    Ich hoffe ihr könnt mir irgendwie helfen 8) MFG German_ScripterHD




    Mit freundlichen Grüßen
    German_ScripterHD

    Einmal editiert, zuletzt von German_ScripterHD () aus folgendem Grund: PWN Quelle spaggte :D

  • Hast du mal in der mysql.log geschaut?
    Ansonsten kannst du dir auch mal die Query printen lassen, und schauen ob das überhaupt aufgerufen wird.


    MfG

  • Spoiler anzeigen

    savePlayer(playerid)
    {
    if(sInfo[playerid][eingeloggt]==0)return 1;
    new query[256];
    format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i' WHERE id='%i'",sInfo[playerid][level],
    GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo,sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }

    Edit:
    So sollte es klappen

    savePlayer(playerid)
    {
    if(sInfo[playerid][eingeloggt]==0)return 1;
    new query[256];
    format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i' WHERE id='%i'",
    sInfo[playerid][level], GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }
    // Sry PHP Tag ^^

    Für das Moderationsteam:
    Ich nutze offene WLAN's und bin im Intercafe oder im Hotel. (Vor Ban wegen Multiaccount deswegen bitte eine private Nachricht, um dies zu klären).

  • also:


    Mysql log:

    [16:26:20] [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 '5',spawnchange='0' WHERE id='2000'' at line 1


    Mit freundlichen Grüßen
    German_ScripterHD

  • Mach deinen Query bitte so
    format(query,sizeof(query),"UPDATE `user` SET `level`=%i,`money`=%i,`alevel`=%i,`fraktion`=%i,`rang`=%i,`spawnchange`=%i WHERE `id`=%i;",
    sInfo[playerid][level], GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][db_id]);

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Mach deinen Query bitte so
    format(query,sizeof(query),"UPDATE `user` SET `level`=%i,`money`=%i,`alevel`=%i,`fraktion`=%i,`rang`=%i,`spawnchange`=%i WHERE `id`=%i;",
    sInfo[playerid][level], GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][db_id]);


    warum alle escpaen wenn nur money ein sql schlüsselwort ist?
    Ist ne interessensfrage xD
    bringt das irgendeinen vorteil?

    ik bin der vito c:

  • warum alle escpaen wenn nur money ein sql schlüsselwort ist?
    bringt das irgendeinen vorteil?


    Das dient schlichtweg der Fehler Vermeidung. Macht man es strikt immer, dann passieren dahingehend keine Fehler.
    Außerdem kann es ja sein, dass es mal ein neues SQL Schlüsselwort gibt, welches man dann nicht escaped hat.


    Es ist also nur eine zusätzliche Sicherheit, die generell zu empfehlen ist.