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ì:
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...
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?