mmofacts.com

MySQL Feld wird komplett auf 0 gesetzt?!

gepostet vor 12 Jahre, 12 Monate von -Iceman-

Hallo,

hab mal wieder ein Problem, was mir bisher so noch nicht unterlaufen ist... Habe in einem Spiel ein Lager, das jede Gilde benutzen kann, Tabelle ist wie folgt aufgebaut:

id| gilden_id| ressourcen_id| anzahl

Das Script ist soweit abgesichert, das überprüft wird ob ein Benutzer auch eine Zahl eingibt und auch eine Ressource.

Jetzt ist folgendes passiert: Bei allen Datensätzen ist die anzahl auf 0 gesprungen. Einfach so. Das Script wurde davor monatelang nicht geändert. Die Belastung ist eigentlich auch gleichbleibend geblieben. Es gibt keinen Befehl, der nicht mit einem WHERE gilden_id = XY abgesichert ist. Befehle sind einfach aufgebaut mit Insert into blabla ON DUPLICATE KEY UPDATE blabla. Zahlen werden nicht als Strings oder sonstwas behandelt.

Jetzt meine Frage, woran kann sowas liegen, das alle Datensätze bestehen geblieben sind ABER die anzahl auf 0 geändert wurde? Jemand eine Idee? Bin ratlos. Besten dank schonmal :)

gepostet vor 12 Jahre, 12 Monate von Forgotten

Naja, ohne jetzt den Code zu kennen, denke ich, dass irgendetwas bei der Addition bzw. Subtraktion der Anzahl der Ressource schief gegangen ist.

gepostet vor 12 Jahre, 12 Monate von buhrmi

code?

gepostet vor 12 Jahre, 12 Monate von -Iceman-

Danke hat sich erledigt, hab herausgefunden das noch jemand der ebenfalls DB-Zugriff hat da wohl versehentlich sch..... gebaut hat...

gepostet vor 12 Jahre, 12 Monate von BlackScorp

welche DB Engine wird genutzt? dass man manuell prüfen muss ob eine ID exestiert, riecht für mich nach MyIsam, bei InnoDB würde das ganze automatisch passieren, bzw deine mysql_query würde ein false zurückliefern wenn eine ID die eingetragen wird, nicht exestiert.

angenommen du möchtest später eine resource entfernen, zb holz dann müsstest du zu fuß auch deine lager spalten bearbeiten, bei InnoDB hat man die möglichkeit ON UPDATE/DELETE CASCADE

MFG

Auf diese Diskussion antworten