Hallo, habe ein komisches Problem.
Sobald sich ein Spieler ausloggt, sollen seine Daten gespeichert werden.
Beim Ausloggen rufe ich das public Update(playerid); auf.
In diesem public werden alle Daten gespeichert, die Variabeln haben ganz sicher die richtigen Werte!
Ich erstelle einen sehr großen Query und sende diesen an die Datenbank. Doch die Datenbank bleibt unverändert.
Ich lasse den Query als Printausgabe ausgeben (dabei stürtz der Server ab) und kopiere die ausgabe dann und füge sie als SQL befehl ein --> Es funktioniert.
Also ist an der Syntax soweit nichts falsch, sobald ich es manuell als SQL Befehl eingebe, wird die Tabelle aktualisiert.
Ist die Query zu lang? Bei der Print ausgabe stürzt der Server auch ab, nachdem es in die Serverlog geschrieben wurde. Nehme ich die Printausgabe raus, läuft er wunderbar weiter.
Der Query hat ca. (min)3250-3500 Zeichen, werden halt mehr wenn der Spieler mehr zu speichern hat.
Hier mein Quellcode:
public Update(playerid)
{
if(IsPlayerNPC(playerid)) return 1;
GetPlayerPos(playerid,Spieler[playerid][LastX],Spieler[playerid][LastY],Spieler[playerid][LastZ]);
GetPlayerFacingAngle(playerid,Spieler[playerid][LastA]);
gettime(Spieler[playerid][LastHour],Spieler[playerid][LastMinute],Spieler[playerid][LastSecond]);
j_getdate(Spieler[playerid][LastYear],Spieler[playerid][LastMonth],Spieler[playerid][LastDay]);
Spieler[playerid][Bargeld] = j_GetPlayerMoney(playerid, false);
Spieler[playerid][Level] = GetPlayerScore(playerid);
GetPlayerHealth(playerid,Spieler[playerid][Leben]);
GetPlayerArmour(playerid,Spieler[playerid][Armour]);
if(aDuty[playerid])
{
Spieler[playerid][Leben] = 100.0;
Spieler[playerid][Armour] = 0.0;
}
Spieler[playerid][LastInt] = GetPlayerInterior(playerid);
Spieler[playerid][LastVirt] = GetPlayerVirtualWorld(playerid);
new Query[4000];
mysql_real_escape_string(pName[playerid],pName[playerid]);
mysql_real_escape_string(Spieler[playerid][bangrund],Spieler[playerid][bangrund]);
mysql_real_escape_string(Spieler[playerid][tbantime],Spieler[playerid][tbantime]);
mysql_real_escape_string(Spieler[playerid][tbandate],Spieler[playerid][tbandate]);
mysql_real_escape_string(Spieler[playerid][GebDate],Spieler[playerid][GebDate]);
mysql_real_escape_string(Spieler[playerid][Geschlecht],Spieler[playerid][Geschlecht]);
mysql_real_escape_string(Spieler[playerid][Klaeger],Spieler[playerid][Klaeger]);
mysql_real_escape_string(Spieler[playerid][Verbrechen],Spieler[playerid][Verbrechen]);
mysql_real_escape_string(Spieler[playerid][Handynummer],Spieler[playerid][Handynummer]);
format(Query,sizeof(Query),"UPDATE `accounts` SET `Adminlvl` = '%d', `Leaderverwaltung` = '%d', `Bargeld` = '%d', `Bankgeld` = '%f', `Konto` = '%d', `Level` = '%d', ", Spieler[playerid][Adminlvl], (Spieler[playerid][Leaderverwaltung]) ? 1:0, Spieler[playerid][Bargeld], Spieler[playerid][Bankgeld], Spieler[playerid][Konto], Spieler[playerid][Level]);
format(Query,sizeof(Query),"%s`LastHour` = '%d', `LastMonth` = '%d', `LastDay` = '%d', `LastMinute` = '%d', `LastSecond` = '%d', ", Query, Spieler[playerid][LastHour], Spieler[playerid][LastMonth], Spieler[playerid][LastDay], Spieler[playerid][LastMinute], Spieler[playerid][LastSecond]);
format(Query,sizeof(Query),"%s`LastYear` = '%d', `LastInt` = '%d', `LastVirt` = '%d', `Leben` = '%f', `Armour` = '%f', ", Query, Spieler[playerid][LastYear], Spieler[playerid][LastInt], Spieler[playerid][LastVirt], Spieler[playerid][Leben], Spieler[playerid][Armour]);
format(Query,sizeof(Query),"%s`LastX` = '%f', `LastY` = '%f', `LastZ` = '%f', `LastA` = '%f', `ban` = '%d', `Kanister` = '%d', ", Query, Spieler[playerid][LastX], Spieler[playerid][LastY], Spieler[playerid][LastZ], Spieler[playerid][LastA], (Spieler[playerid][ban]) ? 1:0, Spieler[playerid][Kanister]);
format(Query,sizeof(Query),"%s`tban` = '%d', `bangrund` = '%s', `tbantime` = '%s', `tbandate` = '%s', `warns` = '%d', ", Query, (Spieler[playerid][tban]) ? 1:0, Spieler[playerid][bangrund], Spieler[playerid][tbantime], Spieler[playerid][tbandate], Spieler[playerid][warns]);
format(Query,sizeof(Query),"%s`Tutorial` = '%d', `Perso` = '%d', `GebDate` = '%s', `Geschlecht` = '%s', `Zivilskin` = '%d', ", Query, Spieler[playerid][Tutorial], (Spieler[playerid][Perso]) ? 1:0, Spieler[playerid][GebDate], Spieler[playerid][Geschlecht], Spieler[playerid][Zivilskin]);
format(Query,sizeof(Query),"%s`Fraktionsskin` = '%d', `Duty` = '%d', `Mute` = '%d', `OOCMute` = '%d', `Fraktion` = '%d', ", Query, Spieler[playerid][Fraktionsskin], Spieler[playerid][Duty], Spieler[playerid][Mute], Spieler[playerid][OOCMute], Spieler[playerid][Fraktion]);
format(Query,sizeof(Query),"%s`Leader` = '%d', `Spawnchange` = '%d', `Rang` = '%d', `Klaeger` = '%s', `Verbrechen` = '%s', `Matspakete` = '%d', `Drogenpakete` = '%d', ", Query, (Spieler[playerid][Leader]) ? 1:0, Spieler[playerid][Spawnchange], Spieler[playerid][Rang], Spieler[playerid][Klaeger], Spieler[playerid][Verbrechen], Spieler[playerid][Matspakete], Spieler[playerid][Drogenpakete]);
format(Query,sizeof(Query),"%s`Wanteds` = '%d', `Wantedpoints` = '%d', `Susptime` = '%d', `Drogen` = '%d', `Mats` = '%d', `Handy` = '%d', `Handynummer` = '%s', `Handygeld` = '%f', `Handyklingelton` = '%d', ", Query, Spieler[playerid][Wanteds], Spieler[playerid][Wantedpoints], Spieler[playerid][Susptime], Spieler[playerid][Drogen], Spieler[playerid][Mats], Spieler[playerid][Handy], Spieler[playerid][Handynummer], Spieler[playerid][Handygeld], Spieler[playerid][Handyklingelton]);
format(Query,sizeof(Query),"%s`Waffenschein` = '%d', `Angelschein` = '%d', `Autoschein` = '%d', `Motorradschein` = '%d', `Flugschein` = '%d', `Bootsschein` = '%d', `LKWschein` = '%d', ", Query, (Spieler[playerid][Waffenschein]) ? 1:0, (Spieler[playerid][Angelschein]) ? 1:0, (Spieler[playerid][Autoschein]) ? 1:0, (Spieler[playerid][Motorradschein]) ? 1:0, (Spieler[playerid][Flugschein]) ? 1:0, (Spieler[playerid][Bootsschein]) ? 1:0, (Spieler[playerid][LKWschein]) ? 1:0);
format(Query,sizeof(Query),"%s`Helm` = '%d', `Telefonbuch` = '%d', `Angel` = '%d', `Zigaretten` = '%d', `Kondome` = '%d', `Uhr` = '%d', `Lottoschein` = '%d', `Lottoanzahl` = '%d', ",Query, (Spieler[playerid][Helm]) ? 1:0, (Spieler[playerid][Telefonbuch]) ? 1:0, (Spieler[playerid][Angel]) ? 1:0, Spieler[playerid][Zigaretten], Spieler[playerid][Kondome], Spieler[playerid][Uhr], Spieler[playerid][Lottoschein], Spieler[playerid][Lottoanzahl]);
format(Query,sizeof(Query),"%s`Haus` = '%d', `Hauscounter` = '%d', `Hotelzimmer` = '%d', `Partner` = '%s', `Ziviljob` = '%d', `Fraktionsjob` = '%d', `Medikit` = '%d', `Knast` = '%d', ", Query, Spieler[playerid][Haus], Spieler[playerid][Hauscounter], Spieler[playerid][Hotelzimmer], Spieler[playerid][Partner], Spieler[playerid][Ziviljob], Spieler[playerid][Fraktionsjob], Spieler[playerid][Medikit], Spieler[playerid][Knast]);
format(Query,sizeof(Query),"%s`Knastzeit` = '%d', `Knastkaution` = '%d', `Beute` = '%d', `Beuteversteck` = '%d', `Verstecke` = '%d', `RobbedPetrol` = '%d', `RobbedPlanePetrol` = '%d', ", Query, Spieler[playerid][Knastzeit], Spieler[playerid][Knastkaution], Spieler[playerid][Beute], Spieler[playerid][Beuteversteck], Spieler[playerid][Verstecke], Spieler[playerid][RobbedPetrol], Spieler[playerid][RobbedPlanePetrol]);
format(Query,sizeof(Query),"%s`RobbedDiner` = '%d', `RobbedBinco` = '%d', `RobbedBank` = '%d', `Levelpunkte` = '%d', `MaxLevelpunkte` = '%d', `jGrundgehalt` = '%d', `jGehalt` = '%d', `PayDayTime` = '%d', ", Query, Spieler[playerid][RobbedDiner], Spieler[playerid][RobbedBinco], Spieler[playerid][RobbedBank], Spieler[playerid][Levelpunkte], Spieler[playerid][MaxLevelpunkte], (Spieler[playerid][jGrundgehalt]) ? 1:0, Spieler[playerid][jGehalt], Spieler[playerid][PayDayTime]);
format(Query,sizeof(Query),"%s`Monat` = '%d', `Bizcounter` = '%d', `gestorben` = '%d', `verletzt` = '%d', `tod` = '%d', `Krankheit` = '%d', `zQuit` = '%d', `fQuit` = '%d', `Spielstunden` = '%d'", Query, Spieler[playerid][Monat], Spieler[playerid][Bizcounter], (Spieler[playerid][gestorben]) ? 1:0, Spieler[playerid][verletzt], Spieler[playerid][tod], Spieler[playerid][Krankheit], (Spieler[playerid][zQuit]) ? 1:0, (Spieler[playerid][fQuit]) ? 1:0, Spieler[playerid][Spielstunden]);
for(new i = 0; i < 13; i++)
{
new str1[20], str2[20];
format(str1,sizeof(str1),"pWaffe %d", i);
format(str2,sizeof(str2),"pAmmo %d", i);
format(Query,sizeof(Query),"%s, `%s` = '%d', `%s` = '%d'", Query, str1, Spieler[playerid][pWaffe][i], str2, Spieler[playerid][pAmmo][i]);
}
for(new i = 0; i < sizeof BVerstecke; i++)
{
new bvstr[20];
format(bvstr,sizeof(bvstr),"Versteck %d", i+1);
format(Query,sizeof(Query),"%s, `%s` = '%d'", Query, bvstr, Spieler[playerid][Versteck][i]);
}
format(Query, sizeof(Query), "%s WHERE `Nickname` = '%s'", Query, pName[playerid]);
print("Test 1");
printf("Query:\r\n\r\n%s",Query);
print("Test 2");
return 1;
}