Bonjour à tous,
Voila, depuis ce matin je sèche sur un point que je vais essayer d'expliquer.
J'ai une base de donnée à laquelle j'accède par des commandes PDO.
C'est en l'occurrence une bdd mysql en innoDB.
Dans une table j'ai un champs 'id' auto-incrémenté et je souhaite en récupérer
la valeur tout de suite après un insert.
La question que je me pose est, sachant que la bdd autorise les accès et
écritures simultanés, il doit arriver des cas où la valeur retournée par
lastinsertId() pour un premier insert sera l'Id d'un suivant.
Si le problème existe comme je le pense, comment le contourner, et si
non, quelles sont les garanties d'avoir le bon id (la doc n'en parle pas)?
Petit exemple avec deux utilisateurs (pour éclaircir au cas où).
2 utilisateurs U1, U2
U1 lance Insert à t l'id auto-incrémenté est I1
U2 lance Insert à t+x x>0 et l'id auto-incrémenté est I2
U1 lance lastinsertId() à t+y y>x et la valeur de retour est I2 (on souhaite I1!)
Je suis ouvert à toutes autres façons de récupérer l'id différentes de lastinsertId
avec PDO. Je reste sur celle-ci pq c'est la seule qui semblait faire ça.
Merci.
Partager