AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank

Ein Thema von mr47 · begonnen am 11. Apr 2006 · letzter Beitrag vom 11. Apr 2006
Antwort Antwort
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#1

[PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank

  Alt 11. Apr 2006, 15:20
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
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#2

Re: [PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank

  Alt 11. Apr 2006, 15:23
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:
update TABELLE set FELD = FELD + X Also einfach die Datenbank addieren lassen.


Benutzt du mySQL mit oder ohne Transaktionen?
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#3

Re: [PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank

  Alt 11. Apr 2006, 15:34
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:
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... Ich kenne das nur theoretisch!


Danke, mr47
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: [PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank

  Alt 11. Apr 2006, 15:54
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... Ich kenne das nur theoretisch!

Das heißt wohl soviel wie nein
Wenn du MyISAM (der Standard-Tabellentyp) verwendest, gibt es ohnehin keine Transaktionen.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#5

Re: [PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank

  Alt 11. Apr 2006, 15:55
Zitat von Chewie:
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... 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?
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: [PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank

  Alt 11. Apr 2006, 15:59
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.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#7

Re: [PHP+MYSQL] Gleichzeitige Zugriffe auf Datenbank

  Alt 11. Apr 2006, 16:43
Genau so ist es, ich sende immer nur einzelne Querys.

Ich danke euch vielmals!!!

Gruß mr47
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:33 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