1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
function makeTransaction($requetes){
//si le tableau est vide, on retourne...
if (count($requetes)==0)
{
return 'ok';
}
require('connection.php'); //établi la connection à la BD et sélectionne la BD
mysql_select_db($database_bd, $bd); //sélectionne la base de données
try
{
// Fixe le niveau transactionnel (optionnel, en principe est définit sur le serveur.
mysql_query("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE", $bd);
// Début de la transaction
mysql_query("BEGIN", $bd);
for ($i=0;$i<count($requetes);$i++)
{
//ici on recherche le terme "METTRE ICI ID" pour les mettres dans les sous-table
if (isset($current_created_id) AND $current_created_id!=0 ){
$requetes[$i]=str_replace ("METTRE ICI ID",$current_created_id,$requetes[$i]);
}
if(!@mysql_query($requetes[$i], $bd))
{
throw new Exception(mysql_error());
}
//on charge l'id crée, si aucuns id n'est crée( donc=0), on garde l'actuel
$current_created_id=mysql_insert_id()!=0?mysql_insert_id():$current_created_id;
}
// Valide la transaction (effectue toutes les requêtes depuis 'BEGIN')
mysql_query("COMMIT", $bd);
unset ($requetes);
return 'ok';
} |
Partager