MySQL - Intreger speichern 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
  • Ich verwende das G-Stylez R6 aber die Werte werden nicht in die Datenbank gespeichert.

    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    mysql_SetInt("accounts", "level", pInfo[playerid][level], "name", pInfo[playerid][pName]);
    mysql_SetInt("accounts", "money", GetPlayerMoney(playerid), "name", pInfo[playerid][pName]);
    mysql_SetInt("accounts", "kills", pInfo[playerid][kills], "name", pInfo[playerid][pName]);
    mysql_SetInt("accounts", "deaths", pInfo[playerid][deaths], "name", pInfo[playerid][pName]);
    print("DEBUG SavePlayer");
    }
    }
    return 1;
    }


    Die Werte beim erstellen eines Accounts werden aber gespeichert? Was ist da los? :D


    stock CreateAccount(playerid, pass[])
    {
    new query[256],Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    mysql_real_escape_string(Name,Name);
    mysql_real_escape_string(pass,pass);
    format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, pass);
    mysql_query(query);
    return true;
    }


    Hier noch der SetInt Stock


    stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }


    Navicat:


    Warum funktioniert das nicht? :S

    Erfahrung ist der beste Lehrmeister. Nur das Schulgeld ist teuer.
    Thomas Carlyle (1795-1881)

  • stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    new query[256];
    mysql_format(mysql, query, "UPDATE `accounts` SET `level` = '%d', `money` = '%d', `kills` = '%d', `deaths` = '%d' WHERE `Name` = '%e'", pInfo[playerid][level], GetPlayerMoney(playerid), pInfo[playerid][kills], pInfo[playerid][deaths], pInfo[playerid][pName]);
    mysql_query(query);
    // du kannst auch anstatt mysql_format, einfach format benutzen ;)
    print(query);
    }
    return 1;
    }


    Man braucht ja nicht unbedingt 4 Queris benutzen, wenn es auch mit einem geht, oder nicht?

  • new query[256];
    mysql_real_escape_string(pInfo[playerid][pName], pInfo[playerid][pName]);
    format(query, sizeof(query), "UPDATE `accounts` SET `level` = '%d', `money` = '%d', `kills` = '%d', `deaths` = '%d' WHERE `Name` = `%s`", pInfo[playerid][level], GetPlayerMoney(playerid), pInfo[playerid][kills], pInfo[playerid][deaths], pInfo[playerid][pName]);
    mysql_query(query);


    Ich benutze das R8 Plugin, also alles mit cache, dort ist die Funktion vorhanden, normalerweise auch in den vorherigen, ist aber auch egal.
    Ob das mit dem real_escape_string hier oben nun richtig ist, weiß ich nicht, denn ich benutz immer mysql_format, dort wird bei %e das schon automatisch erledigt^^