Salve....
Avrei bisogno di un supporto per capire l'utilizzo delle transazioni, ringrazi in anticipo.
Per evitare il blocco intero della tabella (lock) ho scelto le transazioni per gestire l'eventuale aggiornamento contemporaneo di un record da parte di 2 utenti.
Quindi, con una select visualizzo in una tabella i record che hanno il medesimo codice cliente.
Invece l'aggiornamento del record insseguito ad una modifica lo gestisco con una query update
Nel mio esempio, inizio la transazione a partire dalla select ma se l'utente
non esegue alcuna modifica lascio la transazione aperta, e invece io credo che debba chiudere il cerchio, giusto? quindi mi chiedevo se è più corretto utilizzare sia lo start transaction che il commit nella query di aggiornamento.
Un altro concetto da chiarire è : lo start transation se non blocca i record che cosa fa tecnicamente?
Che prove devo fare per capire che il codice scritto mi gestisce l'accesso contemporaneo della modifica?
ad esempio non mi da errore?
grazie infinite
Avrei bisogno di un supporto per capire l'utilizzo delle transazioni, ringrazi in anticipo.
Per evitare il blocco intero della tabella (lock) ho scelto le transazioni per gestire l'eventuale aggiornamento contemporaneo di un record da parte di 2 utenti.
Quindi, con una select visualizzo in una tabella i record che hanno il medesimo codice cliente.
Codice:
$resultrigheord = mysqli_query($connessione,"start transaction")
or die ("impossibile avviare la transazione");
$queryselect .= "select * FROM insart WHERE CODCLI = '$codcli' AND CODDEST = '$coddest'";
$resultrigheord = mysqli_query($connessione,$queryselect);
if(!$resultrigheord)
die(mysqli_error($connessione));
mysqli_close;
Invece l'aggiornamento del record insseguito ad una modifica lo gestisco con una query update
Codice:
$queryEdit = "UPDATE insart SET QT = '$qt', NOTEART = '$noteart' WHERE ID = $pIndice";
$resultedit = mysqli_query($connessione,$queryEdit);
$resultcommit= mysqli_query($connessione,"COMMIT")
or die ('imossibile eseguire la modifica');
if(!$resultedit)
die(mysqli_error($connessione));
Nel mio esempio, inizio la transazione a partire dalla select ma se l'utente
non esegue alcuna modifica lascio la transazione aperta, e invece io credo che debba chiudere il cerchio, giusto? quindi mi chiedevo se è più corretto utilizzare sia lo start transaction che il commit nella query di aggiornamento.
Un altro concetto da chiarire è : lo start transation se non blocca i record che cosa fa tecnicamente?
Che prove devo fare per capire che il codice scritto mi gestisce l'accesso contemporaneo della modifica?
ad esempio non mi da errore?
grazie infinite