Hallo.
Ich habe mir vorhin das MySQL Tutorial hier im Forum angesehen aber habe damit ein kleines Problem.
Die Daten werden nicht abgespeichert.
Sprich geladen/gespeichert wird nichts.
Ich habe bereits gedebuggt und theoretisch sollte es gehen.
Also bei LoadPlayer und SavePlayer kam nur dass es funktioniert hat.
Ich kann ja mal ein bisschen Code hier lassen:
stock Connect_To_Database()
{
mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
if(mysql_ping() == 1)
{
print("<-| Die Verbindung zur Datenbank wurde hergestellt. |->");
return 1;
}
else
{
print("<-| Es konnte keine Verbindung zur Datenbank hergestellt werden. |->");
print("<-| Versuche erneut ...");
mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
if(mysql_ping() == 1)
{
print("<-| Die Verbindung zur Datenbank wurde hergestellt. |->");
return 1;
}
else
{
print("<-| Die Verbindung konnte nicht hergestellt werden. |->");
print("<-| Server shutdown... |->");
SendRconCommand("exit");
return 1;
}
}
}
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 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_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 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_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 LoadPlayer(playerid)
{
print("Load Player");
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
print("Load Player#2");
GetPlayerName(playerid, Spieler[playerid][pName], MAX_PLAYER_NAME);
Spieler[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", Spieler[playerid][pLevel]);
Spieler[playerid][pAdmin] = mysql_GetInt("accounts", "Admin", "Name", Spieler[playerid][pAdmin]);
Spieler[playerid][pCash] = mysql_GetInt("accounts", "Geld", "Name", Spieler[playerid][pCash]);
Spieler[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", Spieler[playerid][pKills]);
Spieler[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", Spieler[playerid][pTode]);
Spieler[playerid][pTut] = mysql_GetInt("accounts", "Tutorial", "Name", Spieler[playerid][pTut]);
Spieler[playerid][pSkin] = mysql_GetInt("accounts", "Skin", "Name", Spieler[playerid][pSkin]);
Spieler[playerid][pGeschlecht] = mysql_GetInt("accounts", "Geschlecht", "Name", Spieler[playerid][pGeschlecht]);
Spieler[playerid][pFraktion] = mysql_GetInt("accounts", "Fraktion", "Name", Spieler[playerid][pFraktion]);
}
return 1;
}
stock SavePlayer(playerid)
{
print("Save Player");
if(Spieler[playerid][pLoggedIn]== 1 && !IsPlayerNPC(playerid))
{
print("Save Player #2");
mysql_SetInt("accounts", "Level", Spieler[playerid][pLevel], "Name", Spieler[playerid][pName]);
mysql_SetInt("accounts", "Admin", Spieler[playerid][pAdmin], "Name", Spieler[playerid][pName]);
mysql_SetInt("accounts", "Geld", Spieler[playerid][pCash], "Name", Spieler[playerid][pName]);
mysql_SetInt("accounts", "Kills", Spieler[playerid][pKills], "Name", Spieler[playerid][pName]);
mysql_SetInt("accounts", "Tode", Spieler[playerid][pTode], "Name", Spieler[playerid][pName]);
mysql_SetInt("accounts", "Tutorial", Spieler[playerid][pTut], "Name", Spieler[playerid][pName]);
mysql_SetInt("accounts", "Skin", Spieler[playerid][pSkin], "Name", Spieler[playerid][pName]);
mysql_SetInt("accounts", "Geschlecht", Spieler[playerid][pGeschlecht], "Name", Spieler[playerid][pName]);
mysql_SetInt("accounts", "Fraktion", Spieler[playerid][pFraktion], "Name", Spieler[playerid][pName]);
}
return 1;
}
Wenn ich mir den Log anschaue und einwenig versuche daraus etwas zu entziffern:
[18:15:57] CMySQLHandler::Query(UPDATE `accounts` SET `Skin` = '12' WHERE `Name` = '') - Successfully executed.
Sieht es so aus alsob er keinen "Namen" hat wo er abspeichern soll.
Kann jemand helfen??