probleme de update pour l'exécution d'une transaction
bonjour les amis. Le but est d'exécuter les 3 requêtes dans une transaction mais c'est seulement la dernière requête qui marche et curieusement. à l'affichage il me'envoie le message que tout s'est bien déroulé.les requêtes update ne marchent pas. Et normalement si les deux requetes ne marchent pas le commit ne devrait pas s'exécuter.
code
Code:
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
try
{
// On se connecte à MySQL
$pdo= new pdo('mysql:host=localhost;dbname=projettransaction;charset=utf8', 'root', '');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
try
{
//on tente d'exécuter les requêtes suivantes dans une transactions
//on lance la transaction
$pdo->beginTransaction();
//nos 3 requêtes
$pdo->query('UPDATE compte SET solde= (solde-$montant) WHERE num_compte=$comptedebiteur');
$pdo->query('UPDATE compte SET solde=(solde+$montant) WHERE num_compte=$comptedebiteur');
$pdo->query('INSERT INTO virement VALUES(02,"28/07/2015","'.$comptedebiteur.'","'.$comptecrediteur.'","'.$montant.'")');
//si jusque là tout se passe bien on valide la transaction
$pdo->commit();
//on affiche un petit message de confirmation
echo 'Tout s\'est bien passé.';
}
catch(Exception $e) //en cas d'erreur
{
//on annule la transation
$pdo->rollback();
//on affiche un message d'erreur ainsi que les erreurs
echo 'Tout ne s\'est pas bien passé, voir les erreurs ci-dessous<br />';
echo 'Erreur : '.$e->getMessage().'<br />';
echo 'N° : '.$e->getCode();
//on arrête l'exécution s'il y a du code après
exit();
} |