MySQL Plugin möchte nicht so, wie ich möchte, was mache ich falsch?

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 Breadfish-Community,


    Mein MYSQL Plugin: https://github.com/pBlueG/SA-MP-MySQL/releases/tag/R39-5

  • Hast du auch die richtige Version als Plugin auf dem Server?
    Gegebenenfalls Plugin nochmal neu Runterladen, includes ersetzten, neu Kompilern und dann nochmal versuchen.

    Mit freundlichem Gruß
    Weper

  • Er hats schon hinbekommen sagte er im Tutorial von Jeffry.


    Wahrscheinlich hat er vergessen das Plugin in die server .cfg zu schreiben oder sowas in der Art ^^

    SA:MP in 2020?

  • Richtig... Habs vergessen. Andere Frage, bei mir übergibt der die Query nicht an eine Public-Funktion....


    Code
    mysql_pquery(handle, query, "OnUserRegister", "d", playerid);
    Code
    forward OnUserRegister(playerid);
    public OnUserRegister(playerid)
    {
    	//Der Spieler wurde in die Datenbank eingetragen, es wird die id ausgelesen
    	PlayerInfo[playerid][p_id] = cache_insert_id();
    	SendClientMessage(playerid, 0x00FF00FF, "[Konto] Registration erfolgreich.");
    	return 1;
    }

    @fishy, @wepper

  • Standardmäßig funktioniert jeffrys tutorial einwandfrei, bist du auch sicher dass all deine MySQL daten angepasst wurden?


    z.B.
    Standard:


    Code
    mysql_format(handle, query, sizeof(query), "INSERT INTO users (name, password) VALUES ('%e', MD5('%e'))", PlayerInfo[playerid][pName], inputtext);


    Doch bei mir hieß die Tabelle:

    Code
    mysql_format(handle, query, sizeof(query), "INSERT INTO userdata (name, password) VALUES ('%e', MD5('%e'))", PlayerInfo[playerid][pName], inputtext);


    hast du das alles angepasst?


    Edit: Der unterschied ist: USERS und USERDATA, beim INSERT INTO

    SA:MP in 2020?

  • Du musst die Query auch formatieren. Kannst du uns die mal zeigen?

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Kannst du mal nachschauen, was dir im MySQL Log ausgegeben wird, wenn du dich registrierst?Schalte, falls nichts ausgegeben wird, den Debug Modus ein (Zeile 333 in obigem Code).

    Bash
    [20:39:43] [DEBUG] mysql_format - connection: 1, len: 128, format: "SELECT id FROM users WHERE name = '%e'"
    [20:39:43] [DEBUG] mysql_pquery - connection: 1, query: "SELECT id FROM users WHERE name = 'Ben.'", callback: "OnUserCheck", format: "d"
    [20:39:43] [DEBUG] CMySQLQuery::Execute[OnUserCheck] - starting query execution
    [20:39:43] [ERROR] CMySQLQuery::Execute[OnUserCheck] - (error #1054) Unknown column 'name' in 'where clause'
    [20:39:43] [DEBUG] CMySQLQuery::Execute[OnUserCheck] - error will be triggered in OnQueryError
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • @Jeffry,


    Bis jetzt funktioniert alles soweit außer ein großes Problem,
    ich möchte einen Wert in MySQL setzen und er wird nicht
    gesetzt...


    MSQL Log:

    Bash
    [14:01:37] [DEBUG] mysql_format - connection: 1, len: 512, format: "UPDATE `characters` SET `nname` = '%e' WHERE `characters`.`CharID` = '%d'"
    [14:01:37] [DEBUG] mysql_query - connection: 1, query: "UPDATE `characters` SET `nname` = 'Hans' WHERE `characters`.`Cha", use_cache: true


    Pawn Script:


    Code
    new nr = PlayerInfo[playerid][paCharacter];
    		new name[10]; format(name, sizeof(name), "%s", inputtext);
      		CharInfo[nr][cnname] = name;
      		new query[512];
    		mysql_format(handle, query, sizeof(query), "UPDATE `characters` SET `nname` = '%e' WHERE `characters`.`CharID` = '%d'",name,nr);
    		mysql_query(handle, query);
    		ShowPlayerDialog(playerid, DIALOG_CHARNNAME, DIALOG_STYLE_INPUT, "{FF372E}Character-Erstellung", "Bitte waehle den Nachnamen deines Characters.","Ok","Abbrechen");
  • Ändere
    CharInfo[nr][cnname] = name;
    zu:
    format(CharInfo[nr][cnname], 32, name);


    Das wird aber nichts mit dem Problem zu tun haben.
    Bekommst du eine Meldung im MySQL Log zwecks Warnung oder Error? Soweit sieht es nämlich korrekt aus.

  • @Jeffry,


    Ich bekomme keinen Error soweit, aber im MySQL-Log ist ein String abgeschnitten, liegt es eventuell daran ?


    Code
    [14:01:37] [DEBUG] mysql_query - connection: 1, query: "UPDATE `characters` SET `nname` = 'Hans' WHERE `characters`.`Cha", use_cache: true
  • Wunsch: Er soll einen neunen Character in die Datenbank eintragen und dann beim Spieler in der Datenbank den neuen Character per ID eintragen und
    dem Spieler in PlayerInfo(Enum) als aktuellen Character erneut die ID eintragen.


    Wenn ich jetzt die ID von dem gerade erstellen Character auslesen möchte gibt er nur 0 an...


    Bash: Konsole
    UPDATE `characters` SET `nname` = 'Mueller' WHERE `characters`.`CharID` = '0'