MYSQL: update ändert falschen Datensatz
hk-berg
- datenbank
Hallo, ich bitte um Hilfe:
Ich habe eine Adressverwaltung mit php und mysql bei 1&1 im Einsatz.
Seit 2 Jahren läuft das Programm ohne Änderungen störungsfrei.
Aber letzte Woche ist ein komischer Fehler aufgetreten.
Bei dem update Befehl ... where b_buchnr = $xb_zeile[b_buchnr] LIMIT 1
der sei Anbeginn richtig funktioniert wurde ein anderer Datensatz überschrieben als eigentlich sollte. Der Fehler trat an einem Tag 3 mal auf. Jetzt läuft alles wieder bestens. Hat jemand ähnliche Erfahrungen mit 1&1?
bzw. hat jemand einen Rat wie ich so etwas abfangen könnte?
Ich habe bei mysql_query($buch_rep_v) ein OK erhalten und habe im Programm dadurch auch nichts unternommen. Bei 1&1 hat natürlich keiner eine Ahnung bwas da sein könnte
Bin um jeden Tip dankbar
Viele Grüße
Herbert
Hallo
Aber letzte Woche ist ein komischer Fehler aufgetreten.
Bei dem update Befehl ... where b_buchnr = $xb_zeile[b_buchnr] LIMIT 1
Sowas gibt es in SQL nicht. Das ist PHP-Kram, der MySQL nicht im geringsten interessiert. Welches Statement wird tatsächlich abgesetzt?
Wozu das LIMIT?
Kann es mehrere Datensätze geben, die das Kriterium erfüllen?
Möchtest Du nur den ersten Datensatz ändern?
Wenn ja, dann ist Dein Ansatz völlig falsch:
Du benötigst eine Sortierung, die Dir garantiert den ersten Datensatz liefert - und nicht zufälligerweise oft den von Dir gewünschten Datensatz.
Ich habe bei mysql_query($buch_rep_v) ein OK erhalten und habe im Programm dadurch auch nichts unternommen.
Es ist völlig ok, wenn Dein Statement einen beliebigen Datensatz ändert, der die WHERE-Klausel erfüllt. Dann hat MySQL seine Schuldigkeit getan.
Freundliche Grüße
Vinzenz