Mysql String + Speichern

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
  • Guten Tag, liebe Community :)
    Ich arbeite derzeit wieder aus Fun an einem RP Server, da ich mich mit Mysql vertraut machen möchte.


    Jetzt wollte ich die Funktion "mysql_GetString" und "mysql_SetString" testen.
    Leider habe ich dabei 2 Errors rausgeworfen.
    Wäre nett, wenn ihr mir dabei helfen könntet :D


    Errors:

    Spoiler anzeigen

    C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\mysqlgmc.pwn(580) : warning 202: number of arguments does not match definition
    C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\mysqlgmc.pwn(628) : error 047: array sizes do not match, or destination array is too small
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

    Spoiler anzeigen
    1 Error.

    Pawn Code:

    //Zeile 580
    mysql_SetString("Spieler", "Deckname", "Niemand", SpielerInfo[playerid][pName]);


    //Zeile 628
    SpielerInfo[playerid][pDeckname] = mysql_GetString("Spieler", "Deckname", "Name", SpielerInfo[playerid][pName]);


    //Wird so gespeichert
    mysql_SetString("Spieler", "Deckname", SpielerInfo[playerid][pDeckname], "Name", SpielerInfo[playerid][pName]);


    //Oben im enum
    enum SpielerDaten
    {
    //Hier steht natürlich noch mehr
    pDeckname[64]
    }
    new SpielerInfo[MAX_PLAYERS][SpielerDaten];


    //Der Stock
    stock mysql_GetString(Table[], Field[], Where[], Is[])
    {
    new query[128], Get[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return Get;
    }


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


    Ich bedanke mich vorträglich für eure Hilfe

  • 2. Error ist klar das geht nicht das du einer 2d array einen string zuweißt. Dazu musst du format oder strcat verwenden jedoch beachten die ganzen
    daten des spielers vor dem connecten zu leeren.


    Beim ersten Fehler ( warning) liegt es das du nicht alle parameter ausnutzt du hast einen vergessen


    mysql_SetString("Spieler", "Deckname", "Niemand", "Name",SpielerInfo[playerid][pName]);