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