Mi trovo a dover eseguire sul db 3 query diverse, in particolare 3 delete su diverse tabelle, ma devo essere sicuro che vengano effettuate tutte e 3 oppure nessuna.
Mi sono trovato in passato in questa situazione usando JSP ed ho risolto impostando l'autocommit a false, messo le diverse query all'interno di un try, committate (azz che brutta parola) e poi messo una catch con rollback.
Una cosa così:
Bene, suppongo che in PHP la cosa sia molto simile, ma non so praticamente come si fa.codice:try { conn.setAutocommit(false); query1 = "Un'operazione sul db"; query2 = "Un'altra operazione sul db"; query3 = "Un'ultima operazione sul db"; query1.executeUpdate(); query2.executeUpdate(); query3.executeUpdate(); conn.commit(); } catch (SQLException ex) { //vari messaggi d'errore conn.rollback(); } ecc, ecc...
Come sarebbe lo schema da seguire?
Come imposto l'autocommit a false?
Come si fa il commit di una query se l'autocommit è false?
Come si esegue il rollback?

Rispondi quotando