[MYSQL] Daten werden nicht gespeichert

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
  • Hey ho,


    ich möchte, dass wen ich den Befehl "/save" eingebe die Daten von mir gespeichert werden.
    So habe ich es bis jetzt gemacht:


    ocmd:save(playerid,params[])
    {
    SavePlayerInv(playerid);
    return 1;
    }


    Der stock dazu sieht wie folgt aus:


    stock SavePlayerInv(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    mysql_SetInt("inventar", "b_zig", GetPVarInt(playerid,"b_zig"), "Name", name);
    mysql_SetInt("inventar", "m_zig", GetPVarInt(playerid,"m_zig"), "Name", name);
    mysql_SetInt("inventar", "t_zig", GetPVarInt(playerid,"t_zig"), "Name", name);
    mysql_SetInt("inventar", "Mats", GetPVarInt(playerid,"Mats"), "Name", name);
    mysql_SetInt("inventar", "Marihuana", GetPVarInt(playerid,"Marihuana"), "Name", name);
    mysql_SetInt("inventar", "Heroin", GetPVarInt(playerid,"Heroin"), "Name", name);
    mysql_SetInt("inventar", "Coins", GetPVarInt(playerid,"Coins"), "Name", name);
    mysql_SetInt("inventar", "Kanister", GetPVarInt(playerid,"Kanister"), "Name", name);
    mysql_SetInt("inventar", "Masken", GetPVarInt(playerid,"Masken"), "Name", name);
    }
    }
    return 1;
    }


    In der Datenbank habe ich einen Table namens "inventar" und sonst ist auch alles vorhanden!
    Die server.log und die mysql-log sind fehlerfrei!!!


    Was mache ich falsch? :(

  • Myql-Log:


    Code
    [Fri Nov 21 16:05:34 2014] -------------------------
    [Fri Nov 21 16:05:34 2014]  	Logging Started
    [Fri Nov 21 16:05:34 2014] -------------------------
    [Fri Nov 21 16:05:35 2014] Connected (0) to test @ localhost via TCP/IP.
    [Fri Nov 21 16:05:35 2014] MySQL Server Version 5.6.20.


    Und die normale Server.log:


  • Die INSERT funktion ist zum eintragen von Spalten, schick mal bitte dein mysql_SetInt stock, und am besten einen Screenshot von deiner Datenbankstruktur in phpmyadmin, oder Navi Cat oder so:O

    Mit freundlichen Grüßen,
    Chriss aka. xDesertx

  • Setze mal einen print vor:
    new name[MAX_PLAYER_NAME];


    und schau ob der überhaupt kommt:
    print("SavePlayer aufgerufen");


    Wenn der print kommt, dann schalte mysql_log auf LOG_ALL an und schau nach was im mysql_log geprintet wird, wenn du den Befehl eingibst.

  • Wenn der print kommt, dann schalte mysql_log auf LOG_ALL an und schau nach was im mysql_log geprintet wird, wenn du den Befehl eingibst.


    In der Log kommt folgendes:



    P.S: Ich habe nur in de Datenbank die Tables & Zeilen reingeschrieben, die ich brauche!
    Ich habe noch nichts mit der INSERT Funktiom gemacht, brauche ich das?

  • Zitat

    Da solltest du anlegen, sonst klappt es natürlich nicht.

    Ich möchte aber, dass diese Zeile automatisch angelegt wird, wenn man sich registriert :)


    Meine Frage, was muss im Register Stock angeben, damit ein Eintrag mit dem Namen des Spielers angelegt wird? :o

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Beitrag von Jeffry ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Füge das bei der Registration hinzu:


    D:\Domi\Spiele\GTA San Andreas\Selfmade\gamemodes\inventar.pwn(25497) : warning 202: number of arguments does not match definition
    D:\Domi\Spiele\GTA San Andreas\Selfmade\gamemodes\inventar.pwn(25499) : error 001: expected token: "-string end-", but found "-identifier-"
    D:\Domi\Spiele\GTA San Andreas\Selfmade\gamemodes\inventar.pwn(25499) : warning 215: expression has no effect
    D:\Domi\Spiele\GTA San Andreas\Selfmade\gamemodes\inventar.pwn(25499) : error 001: expected token: ";", but found ")"
    D:\Domi\Spiele\GTA San Andreas\Selfmade\gamemodes\inventar.pwn(25499) : error 029: invalid expression, assumed zero
    D:\Domi\Spiele\GTA San Andreas\Selfmade\gamemodes\inventar.pwn(25499) : fatal error 107: too many error messages on one line


    Diese Fehler habe ich bei deinem Code bekommen :/


    new query[128],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name);
    mysql_real_escape_string(name, name);
    format(query, sizeof(query), "INSERT INTO inventar (Name) VALUES ('%s')" name);
    mysql_query(query);

  • Sorry, hab ein "," vergessen. Ohne es zu kompilieren kommt das leider hin und wieder vor. :whistling:
    format(query, sizeof(query), "INSERT INTO inventar (Name) VALUES ('%s')" name);
    zu:
    format(query, sizeof(query), "INSERT INTO inventar (Name) VALUES ('%s')", name);

  • Ich hab den Code oben mal gelöscht. Irgendwie hab ich da nicht das geschrieben was ich schreiben wollte. :pinch:


    new query[128],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    mysql_real_escape_string(name, name);
    format(query, sizeof(query), "INSERT INTO inventar (Name) VALUES ('%s')", name);
    mysql_query(query);


    Jetzt passt es aber.