Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank (https://www.delphipraxis.net/67235-%5Bphp-mysql%5D-gleichzeitige-zugriffe-auf-datenbank.html)

mr47 11. Apr 2006 15:20


[PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank
 
Hi!

Ich habe einen Datensatz, aus dem wird ein Wert gelesen, etwas dazu gezählt und dann wird der neue Wert wieder abgespeichert.
Ich hab jetzt aber ein Problem. Was passiert wenn zwei User genau gleichzeitig diese Funktion ausführen? Es werden die gleichen Werte ausgelesen und dann zwei unterschiedliche geschrieben. Das Problem dabei ist, dass der Wert von User 2 drin steht, aber das von User 1 jetzt gar nicht dazugezählt wurde... Wie kann ich das verhindern?

Gruß mr47

mquadrat 11. Apr 2006 15:23

Re: [PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank
 
Also wenn ich das jetzt richtig verstehe addiert die Funktion zu einem in der Datenbank stehenden Wert etwas hinzu?!

Dann müsste sich das Problem doch durch Verwenden einer solchen Update-Query lösen lassen:
SQL-Code:
update TABELLE set FELD = FELD + X
Also einfach die Datenbank addieren lassen.


Benutzt du mySQL mit oder ohne Transaktionen?

mr47 11. Apr 2006 15:34

Re: [PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank
 
Zitat:

Zitat von mquadrat
Also wenn ich das jetzt richtig verstehe addiert die Funktion zu einem in der Datenbank stehenden Wert etwas hinzu?!

Dann müsste sich das Problem doch durch Verwenden einer solchen Update-Query lösen lassen:
SQL-Code:
update TABELLE set FELD = FELD + X
Also einfach die Datenbank addieren lassen.

Achso, das hatte ich mal ausprobiert, ging aber nicht. Das lag aber 99%ig an mir. Also vielen Dank


Zitat:

Benutzt du mySQL mit oder ohne Transaktionen?
Davon hab ich schon gehört. Ich weiß auch was das ist. Aber ich habe keine Ahnung ob ich Transaktionen verwende und woran ich das sehe... :mrgreen: Ich kenne das nur theoretisch!


Danke, mr47

Chewie 11. Apr 2006 15:54

Re: [PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank
 
Zitat:

Zitat von mr47
Zitat:

Benutzt du mySQL mit oder ohne Transaktionen?
Davon hab ich schon gehört. Ich weiß auch was das ist. Aber ich habe keine Ahnung ob ich Transaktionen verwende und woran ich das sehe... :mrgreen: Ich kenne das nur theoretisch!


Das heißt wohl soviel wie nein ;)
Wenn du MyISAM (der Standard-Tabellentyp) verwendest, gibt es ohnehin keine Transaktionen.

mr47 11. Apr 2006 15:55

Re: [PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank
 
Zitat:

Zitat von Chewie
Zitat:

Zitat von mr47
Zitat:

Benutzt du mySQL mit oder ohne Transaktionen?
Davon hab ich schon gehört. Ich weiß auch was das ist. Aber ich habe keine Ahnung ob ich Transaktionen verwende und woran ich das sehe... :mrgreen: Ich kenne das nur theoretisch!


Das heißt wohl soviel wie nein ;)
Wenn du MyISAM (der Standard-Tabellentyp) verwendest, gibt es ohnehin keine Transaktionen.

Genau die benutz ich! Aber das funktioniert ja ohne Probleme, so wie's mquadrat beschrieben hat, oder?

Chewie 11. Apr 2006 15:59

Re: [PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank
 
Transaktionen sorgen halt dafür, dass du einen ganzen Block von Anweisungen an die Datenbank schicken kannst und das dann eine atomare Aktion ist, d.h. entweder sie wird ganz durchgeführt oder gar nicht. Wenn du keine Transaktionen verwendest, kanns halt passieren, dass zwischen zweien deiner Befehle was passiert, was deine ganze Logik durcheinanderwürfelt. Kommt halt immer auf die konkrete Situation an, obs da Probleme gibt.

Wenn du immer nach genau einem Query einen stabilen Zustand erreichst, brauchst du keine Transaktionen.

mr47 11. Apr 2006 16:43

Re: [PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank
 
Genau so ist es, ich sende immer nur einzelne Querys.

Ich danke euch vielmals!!! :)

Gruß mr47 :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz