Tout d'abords je suis oblié d'utiliser PHP4 car l'hébergement est sous PHP4
Je passe un site de PHP5 à PHP4 (

)
avant j'avais ce type de fonction qui marchait très bien en PHP 5 et j'était sûr du rollback de mes fonctions :
Code :
function travailler($param) {
$Connection = new Connection();
try {
$Connection->ouvrirTransactionBase_site();
// Appels aux différentes requette
$this->Base_travail->base_travail1($Connection, $param);
$this->Base_travail->base_travail2($Connection, $param);
$this->Base_travail->base_travail3($Connection, $param);
...
$Connection->validerTransactionBase_site();
}
catch (Exception $e) {
$Connection->annulerTransactionBase_site();
throw $e;
}
}
et maintenant en PHP4 ça donne ceci :
Code :
function travailler($param) {
$Connection = new Connection();
$Connection->ouvrirTransactionBase_site();
// Appels aux différentes requette
$this->Base_travail->base_travail1($Connection, $param);
$this->Base_travail->base_travail2($Connection, $param);
$this->Base_travail->base_travail3($Connection, $param);
...
$Connection->validerTransactionBase_site();
}
donc si une requête plante plus d'exception et donc pas de rollback, mais ma question est :
lorsque je sort de la fonction en cas de plantage fait-elle elle-même un rollback du fait de sa destruction (destruction de l'objet $Connection)
ou faut-il faire une gestion totalement différente ou serrer les fesses bien fort
NB : mon appel à $Connection->ouvrirTransactionBase_site() fait une requête du type 'SET AUTOCOMMIT=0'