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.
Riesen Danke im vorraus
Hier mal der auszug aus dem MySQL-Debug.log
[21:43:03]
[21:43:03] ---------------------------
[21:43:03] MySQL Debugging activated (05/04/13)
[21:43:03] ---------------------------
[21:43:03]
[21:43:03] >> mysql_connect( )
[21:43:03] CMySQLHandler::Connect() - Connection was successful.
[21:43:03] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.
[21:43:03] >> mysql_ping( Connection handle: 1 )
[21:43:03] CMySQLHandler::Ping() - Connection is still alive.
[21:43:48] >> mysql_real_escape_string( Connection handle: 1 )
[21:43:48] CMySQLHandler::EscapeString(Blade_One); - Escaped 9 characters to Blade_One.
[21:43:48] >> mysql_query( Connection handle: 1 )
[21:43:48] CMySQLHandler::Query(SELECT * FROM `accounts` WHERE `Name` = 'Blade_One') - Successfully executed.
[21:43:48] >> mysql_store_result( Connection handle: 1 )
[21:43:48] CMySQLHandler::StoreResult() - Result was stored.
[21:43:48] >> mysql_num_rows( Connection handle: 1 )
[21:43:48] CMySQLHandler::NumRows() - Returned 0 row(s)
[21:43:48] >> mysql_free_result( Connection handle: 1 )
[21:43:48] CMySQLHandler::FreeResult() - Result was successfully free'd.
Alles anzeigen
Und hier die scriptauszüge.
#define SQL_HOST "46.4.77.199"
#define SQL_USER "[s]ZENSIERT[/s]"
#define SQL_PASS "[s]ZENSIERT[/s]"
#define SQL_DATA "server_db_blade_one"
enum SpielerDaten
{
pName[MAX_PLAYER_NAME],
pLevel,
pGeld,
pKills,
pTode,
Float:pHealth,
pAdmin,
//Float:xKord,
//Float:yKord,
//Float:zKord,
}
new SpielerInfo[MAX_PLAYERS][SpielerDaten];
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;
}
public OnPlayerDisconnect(playerid, reason)
{
SavePlayer(playerid);
DeletePVar(playerid,"Eingeloggt");
return 1;
}
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);
}
}
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;
}
Edit 2: auch mysql server neustart kein erfolg
//edit: irgendwie war das grad ein Grammatikalischer Krautsalat