|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2005
Città: Genova
Messaggi: 2285
|
[PHP e mySql] Bloccare il database durante una modifica
Avrei bisogno di un aiuto per il problema scritto nel titolo. In pratica io devo leggere delle entry da una tabella, fare delle analisi su di esse ed riaggiornare la tabella con le nuove entry appena calcolate.
Devo però evitare che un altro utente possa, chiamando la stessa pagina php, effettuare l'operazione di lettura, calcolo e modifica, prima che io abbia finito di aggiornare la tabella. Quindi non soltanto non deve poterla modificare, ma neanche leggerla, altrimenti rischierebbe di leggere dei valori errati. Ho letto un po di cose su LOCK e COMMIT/ROLLBACK e mi pare che sia più adeguata l'operazione di lock... Solo che nonostante varie guide non sono riuscito a capire come devo farla. Ad esempio, se io faccio LOCK <table> WRITE, dovrebbe bloccare gli altri su read/write però lasciare a me la possibilità di fare l'update sulla tabella in questione?? A cosa servono gli ALIAS? ![]() ![]()
__________________
Lego ™ Fans Club |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2006
Messaggi: 484
|
Gli alias servono per utilizzare una tabella con un altro nome temporaneamente ad esempio: la tabella Pippo ha i campi A e B allora posso scrivere
Codice:
SELECT Ciccio.A FROM Pippo AS Ciccio; |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2000
Città: Bussero (MI)
Messaggi: 1263
|
Devi usare un mutex per eseguire del codice in una regione critica.
Potresti lockare un file o usare un lock su db. Nel caso sia mysql credo debba per forza usare come engine innodb (myisam non penso supporti i lock) |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:02.