Bonjour,

j'ai un petit souci concernant les transactions mysql, voici un exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
try
		{
			$bdd->beginTransaction();
 
			$req = $bdd->prepare('SELECT champ FROM table WHERE id=1');
			$req->execute();
                        $res = $req->fetch();
 
                        $req = $bdd->prepare('UPDATE table SET champ=? WHERE id=1');
			$req->execute(array($res['champ']+1));
 
			$bdd->commit();
		}
		catch (Exception $e)
		{
			$bdd->rollback();
			throw new Exception('...');
		}
(c'est un exemple pour illustrer ma question, pas un code que j'utilise !)

Si 2 utilisateurs accèdent en même temps à ce code que se passe-t-il ?

J'ai beau lire et relire la doc ainsi que des dizaines de topic qui abordent plus ou moins ce sujet la réponse n'est pas claire dans ma tête...Un coup je lis que les transactions vont s’exécuter les unes à la suite des autres, un coup l'inverse mais qu'il y a un lock implicite sur les données manipulées, bref je sais plus à quoi m'en tenir.

merci d'avance