MySQL InnoDB Transaction

Répondre
Lefounard
Lefounard
Déconnecté
I am singing in the rain , I am happy again !!
Bonjour,
Je n'ai pas du saisir le fonctionnement des transaction. Voila mon morceau de code dans lequel, j'ai volontairement inserer une erreur sur la deuxieme requete, pour voir si c'était annule.
  1.  
  2. /* On demarre notre transtaction */
  3.          $req='BEGIN TRANSACTION';
  4.          mysql_query($req,LINK);
  5.          /*$req.='SET AUTOCOMMIT = 0'; */
  6.          
  7.          echo $req.'<br />';
  8.          
  9.          /* On supprime les meta données du champs situé dans la table meta_clients_extend */
  10.          $req= sprintf("DELETE FROM `meta_clients_extend` WHERE id_champ='%d'",mysql_real_escape_string($id_champ, LINK));
  11.          mysql_query($req,LINK);
  12.          echo $req.'<br />';
  13.  
  14.          
  15.          /* On supprime le champs dans la table clients_extend */
  16.          /* ALTER TABLE `clients_extend` DROP `nom_champ` */
  17.          $req=sprintf("ALTER TABLE `clients_extend` DROPFR `%s`",mysql_real_escape_string($nom_champ, LINK));
  18.          mysql_query($req,LINK);
  19.          echo $req.'<br />';
  20.          
  21.          $req='COMMIT';
  22.          mysql_query($req,LINK);
  23.  

Or la premiere requete est bien execute et en bdd, les elements sont enleve, normalement le fait que ce soit une transaction aurait du pratiquer la politique du tout ou rien ?
Mes tables sont en InnoDB.
Merci de vos conseils,
Ciao,
Lefounard
Lefounard
Déconnecté
I am singing in the rain , I am happy again !!
C'est bon
  1.  
  2. <?php
  3. /* On demarre notre transtaction */ 
  4.          $req='START TRANSACTION'; 
  5.          mysql_query($req,LINK); 
  6.          
  7.          /* On supprime les meta données du champs situé dans la table meta_clients_extend */ 
  8.          $req= sprintf("DELETE FROM `meta_clients_extend` WHERE id_champ='%d'",mysql_real_escape_string($id_champ, LINK)); 
  9.          mysql_query($req,LINK); 
  10.          
  11.          
  12.          /* On supprime le champs dans la table clients_extend */ 
  13.          /* ALTER TABLE `clients_extend` DROP `nom_champ` */ 
  14.          $req      = sprintf("ALTER TABLE `clients_extend` DROPFR `%s`",mysql_real_escape_string($nom_champ, LINK)); 
  15.          $result   = mysql_query($req,LINK); 
  16.          
  17.          if (!$result) { 
  18.             $message = 'Requête invalide : ' . mysql_error() . "\n"; 
  19.             $message .= 'Requête complète : ' . $query; 
  20.             mysql_query('ROLLBACK',LINK); 
  21.             die($message); 
  22.          } else { 
  23.             mysql_query('COMMIT',LINK); 
  24.          } 
  25.          
  26.  
  27.          /*redirect(ROOT.ADMIN.'edit_structure_client.php');*/  
  28. ?>
  29.  
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Oui :) C'est start transaction et non begin ;)
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Php