|MySQL| Ist das so Resourcensparend?

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
  • Ich hab mal ne Frage, weil ich mein Script "etwas" Resourcensparender schreiben möchte :)


    Spoiler anzeigen
    stock SpielerSpeichern(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new query[2800], sstring[128];
    format(sstring, sizeof(sstring), "UPDATE accounts SET Level = '%d' WHERE Name = '%s'", Spieler[playerid][sLevel], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Geld = '%d' WHERE Name = '%s'", Spieler[playerid][sGeld], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Kills = '%d' WHERE Name = '%s'", Spieler[playerid][sKills], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Tode = '%d' WHERE Name = '%s'", Spieler[playerid][sTode], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Premium = '%d' WHERE Name = '%s'", Spieler[playerid][sPremium], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Premiumpunkte = '%d' WHERE Name = '%s'", Spieler[playerid][sPremiumpunkte], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Geschlecht = '%d' WHERE Name = '%s'", Spieler[playerid][sGeschlecht], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Fraktion = '%d' WHERE Name = '%s'", Spieler[playerid][sFraktion], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Rang = '%d' WHERE Name = '%s'", Spieler[playerid][sRang], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Startbonus = '%d' WHERE Name = '%s'", Spieler[playerid][sStartbonus], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Waffenschein = '%d' WHERE Name = '%s'", Spieler[playerid][sWaffenschein], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Verwarnungen = '%d' WHERE Name = '%s'", Spieler[playerid][sWarns], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Gebannt = '%d' WHERE Name = '%s'", Spieler[playerid][sGebannt], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Adminlevel = '%d' WHERE Name = '%s'", Spieler[playerid][sAdmin], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Punkte = '%d' WHERE Name = '%s'", Spieler[playerid][sPunkte], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Bankkonto = '%d' WHERE Name = '%s'", Spieler[playerid][sBank], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Skin = '%d' WHERE Name = '%s'", Spieler[playerid][sSkin], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Beruf = '%d' WHERE Name = '%s'", Spieler[playerid][sJob], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Tutorial = '%d' WHERE Name = '%s'", Spieler[playerid][sTutorial], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET PayDay = '%d' WHERE Name = '%s'", Spieler[playerid][sPayDay], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Wanteds = '%d' WHERE Name = '%s'", Spieler[playerid][sWanteds], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Alter = '%d' WHERE Name = '%s'", Spieler[playerid][sAlter], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Arbeitslosengeld = '%d' WHERE Name = '%s'", Spieler[playerid][sArbeitslosengeld], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Handynummer = '%d' WHERE Name = '%s'", Spieler[playerid][sHandynummer], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Jobsperre = '%d' WHERE Name = '%s'", Spieler[playerid][sJobSperre], SpielerName(playerid));
    strcat(query, sstring);
    format(sstring, sizeof(sstring), "UPDATE accounts SET Brechstange = '%d' WHERE Name = '%s'", Spieler[playerid][sBrechstange], SpielerName(playerid));
    strcat(query, sstring);
    mysql_query(query);
    }
    }
    return 1;
    }


    Ist das Resourcenfressend? Wie geht es sparender?

  • Weil ich es gerade sehe: So funktioniert das ja nichtmal.
    Die SQL Syntax ist falsch, du reihst einfach "UPDATE"-Befehle ohne Semikolon und ohne Abstand hintereinander, das kann ja gar nicht funktionieren.

    Professioneller Webentwickler.

  • Also so ähnlich wie hier: (Habe ich mal schnell ausm pRP Skript kopiert..)
    new mainquery[1315],query[450];
    format(query,sizeof(query),"UPDATE "#DATENBANKTAG"_properties SET haus_besitzer='%s',haus_Owned='%d',haus_innenraum='%d',haus_miete='%d',haus_beschreibung='%s',haus_locked='%d',haus_slots='%d',haus_eingemitetenzaehler='%d',haus_x='%f',haus_y='%f',haus_z='%f',",
    HausInfo[haus][haus_besitzer],HausInfo[haus][haus_Owned],HausInfo[haus][haus_innenraum],HausInfo[haus][haus_miete],HausInfo[haus][haus_beschreibung],HausInfo[haus][haus_locked],HausInfo[haus][haus_slots],HausInfo[haus][haus_eingemitetenzaehler],HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);
    strcat(mainquery,query);
    format(query,sizeof(query),"haus_preis='%d',haus_level='%d',haus_geldkasse='%d',haus_Opium='%d',haus_Spice='%d',haus_c4='%d',haus_Ganja='%d',haus_Kokain='%d',haus_materials='%d',haus_heal='%d',haus_armour='%d',haus_hatheal='%d',haus_hatarmour='%d',hausgundumper='%d',",
    HausInfo[haus][haus_preis],HausInfo[haus][haus_level],HausInfo[haus][haus_geldkasse],HausInfo[haus][haus_Opium],HausInfo[haus][haus_Spice],HausInfo[haus][haus_c4],HausInfo[haus][haus_Ganja],HausInfo[haus][haus_Kokain],HausInfo[haus][haus_materials],HausInfo[haus][haus_heal],HausInfo[haus][haus_armour],HausInfo[haus][haus_hatheal],HausInfo[haus][haus_hatarmour],HausInfo[haus][haus_waffenschrank]);
    strcat(mainquery,query);
    format(query,sizeof(query),"hausgun0='%d',hausgun1='%d',hausgun2='%d',hausgun3='%d',hausgun4='%d',hausgun5='%d',hausgun6='%d',hausgun7='%d',hausgun8='%d',hausgun9='%d',hausgun10='%d',hausgun11='%d',hausgun12='%d',hausgunammo0='%d',hausgunammo1='%d',hausgunammo2='%d',hausgunammo3='%d',",
    HausInfo[haus][haus_gun][0],HausInfo[haus][haus_gun][1],HausInfo[haus][haus_gun][2],HausInfo[haus][haus_gun][3],HausInfo[haus][haus_gun][4],HausInfo[haus][haus_gun][5],HausInfo[haus][haus_gun][6],HausInfo[haus][haus_gun][7],HausInfo[haus][haus_gun][8],HausInfo[haus][haus_gun][9],HausInfo[haus][haus_gun][10],HausInfo[haus][haus_gun][11],HausInfo[haus][haus_gun][12],
    HausInfo[haus][haus_gunammo][0],HausInfo[haus][haus_gunammo][1],HausInfo[haus][haus_gunammo][2],HausInfo[haus][haus_gunammo][3]);
    strcat(mainquery,query);
    format(query,sizeof(query),"hausgunammo4='%d',hausgunammo5='%d',hausgunammo6='%d',hausgunammo7='%d',hausgunammo8='%d',hausgunammo9='%d',hausgunammo10='%d',hausgunammo11='%d',hausgunammo12='%d',hausmull='%d',haus_msg='%s' WHERE id='%d'",
    HausInfo[haus][haus_gunammo][4],HausInfo[haus][haus_gunammo][5],HausInfo[haus][haus_gunammo][6],HausInfo[haus][haus_gunammo][7],HausInfo[haus][haus_gunammo][8],HausInfo[haus][haus_gunammo][9],HausInfo[haus][haus_gunammo][10],HausInfo[haus][haus_gunammo][11],HausInfo[haus][haus_gunammo][12],HausInfo[haus][hausmull],HausInfo[haus][haus_msg],haus);
    strcat(mainquery,query);
    mysql_query(mainquery);


  • Hast du überhaupt den Code gelesen?
    Er liest nichts aus, sondern UPDATEd etwas in seine Datenbank.
    Da bringt ihm doch sscanf nichts.Autsch :D stimmt