MySQL Speichert Accounts nicht ab

  • MySQL Speichert Accounts nicht ab

    Hallo Community,

    Ich habe da ein komisches Problem.
    Mein Script connectet ohne Probleme mit dem MySQL Server
    aber es werden keine Accounts gespeichert.
    Laut MySQL.log im debug modus, speichert er auch alles (wen ich das richtig verstehe.)
    Aber in der accounts Tabelle, ist nach disconnect nichts zu finden, und auch beim erneuten Login, soll ich mich wieder Registrieren.
    Habe das Problem zum ersten mal, und sonzt noch nie Probleme gehabt.

    ICh Wäre euch zu tiefst verbunden, wen ihr mir helfen könntet. da ich nicht weiter machen kann, wen das system nicht Läuft.

    Hier mal der auszug aus dem MySQL-Debug.log

    SQL-Abfrage

    1. [21:43:03]
    2. [21:43:03] ---------------------------
    3. [21:43:03] MySQL Debugging activated (05/04/13)
    4. [21:43:03] ---------------------------
    5. [21:43:03]
    6. [21:43:03] >> mysql_connect( )
    7. [21:43:03] CMySQLHandler::Connect() - Connection was successful.
    8. [21:43:03] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.
    9. [21:43:03] >> mysql_ping( Connection handle: 1 )
    10. [21:43:03] CMySQLHandler::Ping() - Connection is still alive.
    11. [21:43:48] >> mysql_real_escape_string( Connection handle: 1 )
    12. [21:43:48] CMySQLHandler::EscapeString(Blade_One); - Escaped 9 characters to Blade_One.
    13. [21:43:48] >> mysql_query( Connection handle: 1 )
    14. [21:43:48] CMySQLHandler::Query(SELECT * FROM `accounts` WHERE `Name` = 'Blade_One') - Successfully executed.
    15. [21:43:48] >> mysql_store_result( Connection handle: 1 )
    16. [21:43:48] CMySQLHandler::StoreResult() - Result was stored.
    17. [21:43:48] >> mysql_num_rows( Connection handle: 1 )
    18. [21:43:48] CMySQLHandler::NumRows() - Returned 0 row(s)
    19. [21:43:48] >> mysql_free_result( Connection handle: 1 )
    20. [21:43:48] CMySQLHandler::FreeResult() - Result was successfully free'd.
    Alles anzeigen


    Und hier die scriptauszüge.
    [pwn]#define SQL_HOST "46.4.77.199"
    #define SQL_USER "ZENSIERT"
    #define SQL_PASS "ZENSIERT"
    #define SQL_DATA "server_db_blade_one"[/pwn]

    [pwn]enum SpielerDaten
    {
    pName[MAX_PLAYER_NAME],
    pLevel,
    pGeld,
    pKills,
    pTode,
    Float:pHealth,
    pAdmin,
    //Float:xKord,
    //Float:yKord,
    //Float:zKord,
    }
    new SpielerInfo[MAX_PLAYERS][SpielerDaten];[/pwn]

    [pwn]public OnGameModeInit()
    {
    mysql_debug(1);
    Connect_To_Database();
    SetGameModeText("TEST");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
    }[/pwn]

    [pwn]public OnPlayerDisconnect(playerid, reason)
    {
    SavePlayer(playerid);
    DeletePVar(playerid,"Eingeloggt");
    return 1;
    }[/pwn]

    [pwn]switch(dialogid)
    {
    case DIALOG_REGISTER:
    {
    if(response)
    {
    if(strlen(inputtext) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Das angegebene Passwort war zu Kurtz...\nBitte Registrier dich jetzt mit einem Passwort:","Register","Abbrechen");
    return 1;
    }
    else
    {
    CreateAccount(playerid, inputtext);
    SetPVarInt(playerid,"Eingeloggt",1);
    SpawnPlayer(playerid);
    return 1;
    }
    }
    else
    {
    Kick(playerid);
    }
    }[/pwn]

    [pwn]stock Connect_To_Database()
    {
    mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
    if(mysql_ping() == 1)
    {

    print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
    return true;
    }
    else
    {

    print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
    print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
    mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
    if(mysql_ping() == 1)
    {
    print("<-| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
    return true;
    }
    else
    {

    print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
    print("<-| [MYSQL] Der Server wird nun beendet!");
    SendRconCommand("exit");
    return true;
    }
    }
    }
    stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    new query[128], Float:sqlfloat;
    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_float(sqlfloat);
    mysql_free_result();
    return sqlfloat;
    }
    stock mysql_CheckAccount(playerid)
    {
    new Query[128],Name[MAX_PLAYER_NAME],count;
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    mysql_real_escape_string(Name, Name);
    format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", Name);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    return count;
    }
    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;
    }
    stock mysql_ReturnPasswort(Name[])
    {
    new query[130], Get[130];
    mysql_real_escape_string(Name, Name);
    format(query, 128, "SELECT `passwort` FROM `accounts` WHERE `Name` = '%s'", Name);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return Get;
    }
    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pAdmin] = mysql_GetInt("accounts", "Admin", "Name", SpielerInfo[playerid][pName]);
    //SpielerInfo[playerid][xxKord] = mysql_GetFloat("accounts", "xKord", "Name", SpielerInfo[playerid][pName]);
    //SpielerInfo[playerid][yyKord] = mysql_GetFloat("accounts", "yKord", "Name", SpielerInfo[playerid][pName]);
    //SpielerInfo[playerid][zzKord] = mysql_GetFloat("accounts", "zKord", "Name", SpielerInfo[playerid][pName]);
    //SpielerInfo[playerid][xKord] = mysql_GetFloat("accounts", "xKord", "Name", SpielerInfo[playerid][pName]);
    //SpielerInfo[playerid][yKord] = mysql_GetFloat("accounts", "yKord", "Name", SpielerInfo[playerid][pName]);
    //SpielerInfo[playerid][zKord] = mysql_GetFloat("accounts", "zKord", "Name", SpielerInfo[playerid][pName]);
    //SpielerInfo[playerid][pJob] = mysql_GetInt("accounts", "Job", "Name", SpielerInfo[playerid][pName]);
    //SpielerInfo[playerid][pJoblevel] = mysql_GetInt("accounts", "Joblevel", "Name", SpielerInfo[playerid][pName]);
    //SetPlayerPos(playerid,SpielerInfo[playerid][xKord], SpielerInfo[playerid][yKord], SpielerInfo[playerid][zKord]); //Unter den anderen Sache
    SetPlayerHealth(playerid,SpielerInfo[playerid][pHealth]);
    GivePlayerMoney(playerid,SpielerInfo[playerid][pGeld]);
    SetPlayerScore(playerid,SpielerInfo[playerid][pLevel]);
    }
    return 1;
    }
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    //new Float:xxKord,Float:yyKord,Float:zzKord;
    //GetPlayerPos(playerid,xxKord,yyKord,zzKord);
    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Admin", SpielerInfo[playerid][pAdmin], "Name", SpielerInfo[playerid][pName]);
    GetPlayerHealth(playerid,SpielerInfo[playerid][pHealth]);
    mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
    /* mysql_SetFloat("accounts", "xKord", SpielerInfo[playerid][xKord], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "yKord", SpielerInfo[playerid][yKord], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "zKord", SpielerInfo[playerid][zKord], "Name", SpielerInfo[playerid][pName]);*/
    // mysql_SetFloat("accounts","xKord",xxKord,"Name",SpielerInfo[playerid][pName]);
    //mysql_SetFloat("accounts","yKord",yyKord,"Name",SpielerInfo[playerid][pName]);
    //mysql_SetFloat("accounts","zKord",zzKord,"Name",SpielerInfo[playerid][pName]);
    //mysql_SetInt("accounts", "Job", SpielerInfo[playerid][pJob], "Name", SpielerInfo[playerid][pName]);
    //mysql_SetInt("accounts", "Joblevel", SpielerInfo[playerid][pJoblevel], "Name", SpielerInfo[playerid][pName]);
    }
    }
    return 1;
    }
    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_GetInt(Table[], Field[], Where[], Is[])
    {
    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(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    new sqlint = mysql_fetch_int();
    mysql_free_result();
    return sqlint;
    }

    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;
    }
    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;
    }
    /*stock mysql_SetFloat(Table[], Field[], Float: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` = '%f' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }
    */
    stock mysql_SetFloat(Table[], Field[], Float: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 = '%f' WHERE %s = '%s'",Table, Field, To, Where, Where2);
    mysql_query(query);
    format(query,128, "");
    return true;
    }[/pwn]

    //edit: Bräuchte da wirklich hilfe, habs bissher immer noch nicht hinbekommen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Scripter-oNE ()

  • also ganz ehrlich, ich arbeite auch so ;D

    aber ich weiß nicht warum aber ich bekomme tros der ganzen querys mein Selfmade Server innerhalb von ca. 20 Sekunden an
    und ich hab mal durch gerechnet

    also hier mal meine Rechnung

    ich lade 18 Fraktionen mit Namen, Befehlen, Rangnammen, etc.. in der Datenbank sind das 158 Spalten.
    über 400 Fraktionsfahrzeuge mit denn Positionen und allem was dazu gehört. in der Datenbank sind das 43 Spalten.
    602 Häuser mit denn Namen, Position, etc.. in der Datenbank sind das 57 Spalten.
    zu jedem Haus noch immer ca. 25 Objekte. in der Datenbank sind das 27 Spalten.
    und weiteres in ca. 20 sekunden und das sind 70612 Query´s
    wenn ich daran denken kann ich mal in die Log hierein Posten[(aber nicht zeile für Zeile)(sondern mit Timestamp)]