Create Account geht 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
  • Guten Morgen Liebe Community ich habe ein Sehr gutes Tutorial gefunden wie man auf mysql umsteigen kann ich habe einen Windows Server und Darauf mysql und php Laufen (Nicht Navicat)arbeiten tu ich mit mysql über phpMyAdmin ich habe alles so Gemacht wie es im Tutorial stand dennoch wird der Account nicht Gespeichert


    Hier mal der stock


    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);
    LoadPlayer(playerid);
    return true;
    }


    Das geht nicht sobald der User Disconnectet muss er sich beim neu Joinen wieder Regestrieren wenn ich jedoch den Account Manuell in die Datebank eintrage wird er gefunden und Abgerufen was mach ich falsch.



    Danke im Vorraus.
    MFG Codename

  • Habe ich es gibt mir keinen Fehler aus dei Verbidung ist da und sie Läuft auch nur das speichern geht Irgenwie nicht


    Hier mal ein kleiner auszug aus der mysql log



  • [00:26:50]


    [00:26:50] ---------------------------


    [00:26:50] MySQL Debugging activated (01/09/13)


    [00:26:50] ---------------------------


    [00:26:50]


    [00:26:50] >> mysql_connect( )


    [00:26:50] CMySQLHandler::CMySQLHandler() - constructor called.


    [00:26:50] CMySQLHandler::CMySQLHandler() - Connecting to "localhost" | DB: "samp" | Username: "root" ...


    [00:26:50] CMySQLHandler::Connect() - Connection was successful.


    [00:26:50] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.


    [00:26:50] >> mysql_ping( Connection handle: 1 )


    [00:26:50] CMySQLHandler::Ping() - Connection is still alive.

  • Ich habe mich jetzt mal mit einem Anderen Name eingeloogt also Regstriert jetzt spuckt mir die lock datein das aus hatte es aber Vorher nochmal geleert



    klick mich
    [00:33:53]

    klick mich
    [00:33:53] ---------------------------

    klick mich
    [00:33:53] MySQL Debugging activated (01/09/13)

    klick mich
    [00:33:53] ---------------------------

    klick mich
    [00:33:53]

    klick mich
    [00:33:53] >> mysql_connect( )

    klick mich
    [00:33:53] CMySQLHandler::CMySQLHandler() - constructor called.

    klick mich
    [00:33:53] CMySQLHandler::CMySQLHandler() - Connecting to "localhost" | DB: "samp" | Username: "root" ...

    klick mich
    [00:33:53] CMySQLHandler::Connect() - Connection was successful.

    klick mich
    [00:33:53] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.

    klick mich
    [00:33:53] >> mysql_ping( Connection handle: 1 )

    klick mich
    [00:33:53] CMySQLHandler::Ping() - Connection is still alive.

    klick mich
    [00:34:45] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:45] CMySQLHandler::EscapeString(Hans); - Escaped 4 characters to Hans.

    klick mich
    [00:34:45] >> mysql_query( Connection handle: 1 )

    klick mich
    [00:34:45] CMySQLHandler::Query(SELECT * FROM `accounts` WHERE `Name` = 'Hans') - Successfully executed.

    klick mich
    [00:34:45] >> mysql_store_result( Connection handle: 1 )

    klick mich
    [00:34:45] CMySQLHandler::StoreResult() - Result was stored.

    klick mich
    [00:34:45] >> mysql_num_rows( Connection handle: 1 )

    klick mich
    [00:34:45] CMySQLHandler::NumRows() - Returned 0 row(s)

    klick mich
    [00:34:45] >> mysql_free_result( Connection handle: 1 )

    klick mich
    [00:34:45] CMySQLHandler::FreeResult() - Result was successfully free'd.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(Hans); - Escaped 4 characters to Hans.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(stilo15991); - Escaped 10 characters to stilo15991.

    klick mich
    [00:34:53] >> mysql_query( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::Query(INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('Hans', '*****')) - An error has occured. (Error ID: 1364, Field 'Level' doesn't have a default value)

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(accounts); - Escaped 8 characters to accounts.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(Level); - Escaped 5 characters to Level.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(Name); - Escaped 4 characters to Name.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(Hans); - Escaped 4 characters to Hans.

    klick mich
    [00:34:53] >> mysql_query( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::Query(SELECT `Level` FROM `accounts` WHERE `Name` = 'Hans') - Successfully executed.

    klick mich
    [00:34:53] >> mysql_store_result( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::StoreResult() - Result was stored.

    klick mich
    [00:34:53] >> mysql_fetch_int( Connection handle: 1 )

    klick mich
    [00:34:53] >> mysql_free_result( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::FreeResult() - Result was successfully free'd.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(accounts); - Escaped 8 characters to accounts.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(Geld); - Escaped 4 characters to Geld.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(Name); - Escaped 4 characters to Name.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(Hans); - Escaped 4 characters to Hans.

    klick mich
    [00:34:53] >> mysql_query( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::Query(SELECT `Geld` FROM `accounts` WHERE `Name` = 'Hans') - Successfully executed.

    klick mich
    [00:34:53] >> mysql_store_result( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::StoreResult() - Result was stored.

    klick mich
    [00:34:53] >> mysql_fetch_int( Connection handle: 1 )

    klick mich
    [00:34:53] >> mysql_free_result( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::FreeResult() - Result was successfully free'd.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(accounts); - Escaped 8 characters to accounts.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(Kills); - Escaped 5 characters to Kills.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(Name); - Escaped 4 characters to Name.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(Hans); - Escaped 4 characters to Hans.

    klick mich
    [00:34:53] >> mysql_query( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::Query(SELECT `Kills` FROM `accounts` WHERE `Name` = 'Hans') - Successfully executed.

    klick mich
    [00:34:53] >> mysql_store_result( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::StoreResult() - Result was stored.

    klick mich
    [00:34:53] >> mysql_fetch_int( Connection handle: 1 )

    klick mich
    [00:34:53] >> mysql_free_result( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::FreeResult() - Result was successfully free'd.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(accounts); - Escaped 8 characters to accounts.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(Tode); - Escaped 4 characters to Tode.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(Name); - Escaped 4 characters to Name.

    klick mich
    [00:34:53] >> mysql_real_escape_string( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::EscapeString(Hans); - Escaped 4 characters to Hans.

    klick mich
    [00:34:53] >> mysql_query( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::Query(SELECT `Tode` FROM `accounts` WHERE `Name` = 'Hans') - Successfully executed.

    klick mich
    [00:34:53] >> mysql_store_result( Connection handle: 1 )

    klick mich
    [00:34:53] CMySQLHandler::StoreResult() - Result was stored.

    klick mich
    [00:34:53] >> mysql_fetch_int( Connection handle: 1 )

    klick mich
    [00:34:53] >> mysql_free_result( Connection handle: 1 )

  • Und dort steht es doch.

    Zitat

    [00:34:53] CMySQLHandler::Query(INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('Hans', 'stilo15991')) - An error has occured. (Error ID: 1364, Field 'Level' doesn't have a default value)

  • Knna es sein da in der mysql struktur Level unter Name steht das er das Falsch Seletiert und versucht das pw in level einzutragen?



    WTF?



    Ich habe jetzt gerade die Stucjtur der Datenbank neu Aufgebaut sie der Reihe nach Soliert und jetzt komm der Fehler#



    [00:59:22] CMySQLHandler::Query(SELECT `Premium` FROM `accounts` WHERE `Name` = 'Hans') - An error has occured. (Error ID: 1054, Unknown column 'Premium' in 'field list')



    Sagmal speichert er das der das in ein feld wie es ihn gerade lustig ist oder was Hier mal meine gnaten stocks villt bin ich einfach nur zu Blöd





    erster stock
    stock Connect_To_Database()
    {
    mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS); //Wir versuchen mit den Angaben die wir oben im Script gemacht haben uns mit dem MySQL Server zu verbinden.
    if(mysql_ping() == 1) //Es wird überprüft ob die Verbindung steht.
    {
    //Falls ja wird das in die Console geschrieben und die Funktion wird beendet.
    print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
    return true;
    }
    else
    {
    //Falls nicht wird erneut versucht eine Verbindung aufzubauen.
    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
    {
    //Falls das auch nicht Funktioniert wird der Server zur Sicherheit wieder heruntergefahren.
    print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
    print("<-| [MYSQL] Der Server wird nun beendet!");
    SendRconCommand("exit");
    return true;
    }
    }
    }


    [expander=2 stock ]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;
    }

    [/expander]


    3 stock


    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);
    LoadPlayer(playerid);
    return true;
    }
    [/pwn]

    Savestock
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1) //Und hier ob er noch eingeloggt ist.
    {
    //Nun speichern wir die Daten in der Datenbank.
    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_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
    }
    }
    return 1;
    }

    Einmal editiert, zuletzt von Codename ()

  • ja und jetzt zeigt er nmir wieder den scheis mit dem passwort an weil er das in Level reinschreiben will aber WARUM zum Teufel nochmal ich mein Das PW wird doch schon vor dem Stock save in die datenbank eingetragen


    Code
    SERT INTO `accounts` (`Name`, `Passwort`) VALUES ('Hans', 'stilo15991')) - An error has occured. (Error ID: 1364, Field 'Level' doesn't have a default value)


    Create Account stock
    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);
    LoadPlayer(playerid);
    return true;
    }



    Woher zum teufel mit er Level

  • Wenn du etwas in die Datenbank schreibst, muss er ja logischerweise die anderen Spalten auch mit Inhalt füllen. Und wenn dieser keinen Standard Wert hat, bricht er es halt ab. Du hast Level wieder keinen Standard Wert gegeben. Kannst du kein Englisch ?^^