Ja, din tilgang er korrekt. Bruger Try...catch
kan føre til renere og mere læsbar kode i nogle tilfælde, men din overordnede tilgang er fin.
Hvis dit kodefragment er fra en funktion, der håndterer DB-forespørgsler og ikke meget andet, ville jeg nok ændre tilgangen til:
// Begin Transaction
$this->db->beginTransaction();
// Fire Queries
if(!$query_one->execute()){
$this->db->rollback();
// other clean-up goes here
return;
}
if(!$query_two->execute()){
$this->db->rollback();
// other clean-up goes here
return;
}
$this->db->commit();
Selvfølgelig, hvis du kræver en masse oprydning, før du kan return
, så er din oprindelige tilgang bedre. Især i disse tilfælde ville jeg overveje at bruge PDO::ERRMODE_EXCEPTION. Dette har nogle yderligere fordele, såsom undtagelser, der automatisk ruller transaktionen tilbage, medmindre de bliver fanget.