Si je lance le PHP suivant, je me attends pas de valeur à insérer dans la table de test, parce que j'ai une transaction que je ne l'ai pas commis:En PHP, puis-je obtenir MySQL pour annuler une transaction si je me déconnecte sans valider, plutôt que de le valider?
$db = mysql_connect("localhost","test","test");
mysql_select_db("test");
mysql_query("begin transaction;");
mysql_query("insert into Test values (1);") or die("insert error: ". mysql_errror());
die('Data should not be commited\n');
mysql_query("commit;"); // never occurs because of the die()
Mais au lieu il semble engager de toute façon. Est-il possible de désactiver ce comportement sans désactiver la validation automatique pour PHP qui n'utilise pas de transactions ailleurs sur le site?
Edit: C'était juste une faute de frappe. Cela devrait être "commencer la transaction" ou "commencer". Pas "commencer la transaction". Désolé de perdre le temps des gens.
Sur mon installation de MySQL, la requête « BEGIN TRANSACTION » donne l'erreur « Vous avez une erreur dans votre syntaxe SQL; vérifier le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'transaction' à la ligne 1 " – mellowsoon