Wie Zahl auf MYSQL wert addieren?

3 Antworten

Kannst du deine Frage bitte etwas verständlicher stellen? Wo genau willst du 20 addieren? In PHP wird es ja kaum sein, da das ja nun die absoluten Basics sind:

$wert = $wert + 20;
// oder
$wert += 20;

Wenn du den Wert in der Datenbank für einen oder mehrere Datensätze ändern willst, dann geht das in etwa so:

UPDATE tabelle SET wert=wert+20 WHERE id=42

Ohne weitere Informationen kann man hier aber nur raten.

Woher ich das weiß:Berufserfahrung – Entwickle seit > 20 Jahren Anwendungen mit PHP.

+20 ...!? o_O

Woher ich das weiß:Hobby – Programmierer, EDV, ... seit den 80er :)

Warum willst du das mit SQL machen?

Les die kacke aus, dann machst du das ausgelesene +20???

$read = ...

$read += 20;

und updaten


Babelfish  03.08.2020, 00:03

Genau das sollte man aber vermeiden, da es fehleranfällig ist. Zwischen dem SELECT zum Abfragen der Daten und dem UPDATE mit den geänderten Daten kann nämlich eine parallel ablaufende Sitzung die Daten schon wieder ändern.

Dann kann es passieren, dass bspw. in einem Buchungssystem das Script im SELECT noch freie Plätze ermittelt und die Buchung auslöst, zwischenzeitlich aber eine andere Buchung die Plätze ebenfalls abfragt und es dann zu einer Überbuchung kommt. Das ist eine beliebte Fehlerquelle, die zwar nur selten auftritt aber dann zu argen Problem führt.

Das alles ist meist vermeidbar.

1
Simon221585  03.08.2020, 09:18
@Babelfish

Sehr selten aber stimmt natürlich! Mehr Informationen hatte ich auch nicht erhalten

0
Babelfish  03.08.2020, 10:55
@Simon221585

Es gibt auch triviale Beispiele, wo es schon häufiger vorkommt wie bspw. einen Counter auf der Webseite. Wenn der Counter dort so erhöht wird:

"SELECT `hits` FROM tb_counter WHERE `date`=NOW()"

// hier mit PHP $hits += 1;

"UPDATE tb_counter SET `hits`=$hits WHERE `date`=NOW()"

… wird es bei gut besuchten Webseiten täglich dazu kommen, dass sich die Requests überschneiden und insgesammt etwas weniger Zugriffe gezählt werden.

Hier muss man sehr aufpassen, da solche Fehler später schwer zu lokalisieren sind und oft unbemerkt bleiben.

1
Simon221585  03.08.2020, 11:14
@Babelfish

Es scheint mir, als hättest du damit schon schmerzhafte Erfahrungen gemacht :D

0
Babelfish  03.08.2020, 11:56
@Simon221585

Ja, in den Fehler bin ich natürlich auch schon getappt. Da sucht man sich den Wolf, bis man so einen Fehler findet.

0