>> INSERT INTO oder UPDATE SET <<

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Hallo, ich habe ein Problem mit meinem Selfmade-Server.
    Da ich noch nicht so ganz vertraut bin mit MySQL, brauche ich hier einmal kurz hilfe.
    Ich habe eine Altersabfrage gescriptet, und ein Geschlechtssystem. Nach den ganzen Abfragen, erscheint das Login-Fenster
    Wenn ich mich eingeloggt habe mit meinen Daten (Passwort) usw und alles geladen wurde, ist Alter und Geschlecht = 0.
    Das kommt, weil in der Tabelle der Wert 0 steht. So wird auch nur 0 ausgegeben und in die Variable gesetzt. Das heißt ich muss bei der Altersabfrage
    das Geschlecht und das Alter einspeichern, noch bevor der Login-Dialog kommt. Nun zur Frage, wie mache ich das, welche Funktionen muss ich nutzen ?


    format(query,sizeof(query),"UPDATE `accounts` SET `Geschlecht`='%i',`Alter`='%i' WHERE `AccountID`='%i'",Spieler[playerid][pSex],Spieler[playerid][pAlter],Spieler[playerid][pAccountID]);


    Die funktion bedeutet ja, das ich den Wert Geschlecht und Alter updaten möchte. Das will ich ja auch in diesem Moment ich möchte den Wert 0 der in der Tabelle ist durch einen neuen Updaten, wiedersprichts sich also, ebendsogut könnte ich auch etwas einspeichern. Ich möchte den Alters und Geschlechtswert
    in die Tabelle `accounts` reinspeichern. Wie muss ich vorgehen. Soll ich lieber


    format(query,sizeof(query),"INSERT INTO `accounts` (Geschlecht,Alter) VALUES ('%i','%i')",Spieler[playerid][pSex],Spieler[playerid][pAlter]


    Welches der Funktionen wäre am Angebrachtesten ?

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • Aktueller Code format(query,sizeof(query),"UPDATE accounts SET Alter='%i' WHERE AccountID='%i'",AgeOfPlayer(playerid),Spieler[playerid][pAccountID]);
    mysql_function_query(db,query,false,"","");
    das Alter wird nicht gespeichert aber inzwischen das Geschlecht (code)


    der mysql Log error von dem obigem code verrät mir selber nicht viel

    SQL
    [16:19:58] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Alter='18' WHERE AccountID='14'' at line 1
    [16:19:58] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Alter='18' WHERE AccountID='14'' at line 1
    ]


    format(query,sizeof(query),"UPDATE accounts SET Geschlecht='%i' WHERE AccountID='%i'",Spieler[playerid][pSex],Spieler[playerid][pAccountID]);
    mysql_function_query(db,query,false,"","");

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • format(query,sizeof query,"UPDATE `accounts` SET `Alter`='%d',`Geschlecht`='%d' WHERE `AccountID`='%d'",AgeOfPlayer(playerid),Spieler[playerid][pSex],Spieler[playerid][pAccountID]);
    mysql_function_query(db,query,false,"","");
    Du brauchst für das Alter und das Geschlecht nicht zwei Querys an die Datenbank schicken, da reicht auch eine ;)
    Nils24: Der MySQL-Error der dort erscheint hängt damit zusammen, weil Alter in MySQL selbst schon verwendet wird, und du es daher in den `` schreiben musst, oder ein komplett anderes Wort verwenden musst.

    Einmal editiert, zuletzt von AirM4X ()