PDA

View Full Version : [PHP e mySql] Bloccare il database durante una modifica


Dani88
16-06-2010, 15:13
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?
:help: :help:

Rossi88
16-06-2010, 16:14
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

SELECT Ciccio.A
FROM Pippo AS Ciccio;

Hiskrtapps
25-06-2010, 13:00
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)