Ciao a tutti... volevo se possibile chiarirmi le idee sull'uso di commit/rollback con php.
Se non ho capito male.
SCOPO: serve per fare magari una serie di insert/update/delete... che devono essere fatti tutti assieme... insomma per evitare che magari ne fa metà e poi va in errore.. e ti ritrovi le tabelle con dati non corretti.
USO:
- si parte con start transaction o begin? cambia qualcosa?
- il commit e il rollback praticamente devo farglieli fare io, controllando con un if se le query sono state tutte eseguite?
- nel caso di rollback, è possibile capire dove è stato generato l'errore?
codice:<?php $START_TRANSACTION = "START TRANSACTION"; $COMMIT = "COMMIT"; $ROLLBACK = "ROLLBACK"; //inizio le operazioni atomiche $mysqli->query($START_TRANSACTION); $queryresult5 = $mysqli->query("query5"); $queryresult6 = $mysqli->query("query6"); $queryresult7 = $mysqli->query("query7"); //finisco le operazioni atomiche if ($queryresult5 && $queryresult6 && $queryresult7) { $mysqli->query($COMMIT); echo "Ok fatto tutto"; } else { $mysqli->query($ROLLBACK); echo "Errore"; }

Rispondi quotando