Alhazred
31-03-2009, 20.44.26
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ė:
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...
Bene, suppongo che in PHP la cosa sia molto simile, ma non so praticamente come si fa.
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?
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ė:
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...
Bene, suppongo che in PHP la cosa sia molto simile, ma non so praticamente come si fa.
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?