Les Allergies
Alimentaires
Posez votre question Signaler

PHP : REcuperation d'un ID après INSERT [Résolu]

alexandre.cailliau 27Messages postés 12 février 2001Date d'inscription - Dernière réponse le 28 mai 2010 à 15:57
Bonjour,

Voici mon problème :
J'ai une base avec une table contenant plusieurs champs dont un nommé ID qui est la clé et s'incremente automatiquement.
En PHP je lance une requete INSERT et j'aimerais savoir comment recuperer l'ID de mon nouvel enregistrement pour pouvoir mettre à jour d'autres tables. Je ne peux pas faire un SELECT car les autres champs de la table n'ont pas forcement des valeurs uniques.

Avez vous une idée.

Merci d'avance

Alexandre
Lire la suite 

PHP : REcuperation d'un ID après INSERT »

10 réponses
Réponse
+37
moins plus
voila comment tu peux récupérer l'ID
..
$..=MYSQL_QUERY($toninsert);
$UID=mysql_insert_id();
..
sefora - 21 janv. 2009 à 10:14
j'ai une question:
si j'ai dans ma page la listes de tous les viteurs et que je suis connectés en tant qu'administrateur et que je veut modifier les coordonnées d'un utilisateur comment je fait pour récupérer l'id de cette l'utilisateur
Ajouter un commentaire
Réponse
+7
moins plus
Bonjour,

Je reprends cette discussion pour poser la question suivante :
La solution proposée par nabzone est la suivante :



t : $..=MYSQL_QUERY($toninsert);
t+y : $UID=mysql_insert_id();



t étant l'instant à laquelle mysql_query est lancée.
y étant le temps de traitement de mysql_query.


Jusque là ça a l'air correct.
Mais je prends un cas où on travaille sur une base où 1000 personnes travaillent en même temps.
Comment être sûr que l'ID retourné par mysql_insert_id() est celui correspondant à ce que je viens d'insérer et non pas à un autre enregistrement qui a eu lieu entre t et t+y????

Merci pour vos réponses


Walid G.
Ajouter un commentaire
Réponse
+6
moins plus
Bsr

Tu n'as pas trop a t'inquiéter car MySQL verrouille le thread qui réalise l'insert. (du moins je pense ...) A partir du moment où il te retourne l'ID c'est bon.

Pour plus de détails :

http://dev.mysql.com/doc/refman/5.0/fr/mysql-stmt-insert-id.html

connexes :

http://dev.mysql.com/doc/refman/5.0/fr/innodb-locking-reads.html
http://dev.mysql.com/doc/refman/5.0/fr/insert.html
Walid - 30 mai 2006 à 04:37
Thanks a lot
Mick - 8 août 2007 à 08:41
Pour info, voici ce qu'on trouve dans la doc :
Le dernier ID généré est conservé par le serveur pour chaque connexion. Un autre client ne la modifiera donc pas, même s'ils génèrent une autre valeur AUTO_INCREMENT de leur coté.

C'est donc tout bon pour utiliser mysql_insert_id() !

Merci à nabzone...
Ajouter un commentaire
Réponse
+6
moins plus
nabzone a raison parce que mysql_insert_id() le denier id que mysql a pour ta connection. cette valeur la est en session cote serveur.
pas besoin d'avoir peur pour les acces d'autre utilisateurs.

par contre il faut s'en mefier pour les procedures stockees
Ajouter un commentaire
Réponse
+5
moins plus
j'ai présumé (peu être à tort) que tu utilisait MySQL

@+
alexandre.cailliau- 12 déc. 2001 à 17:04
tu as bien fait et ça marche super bien.

MERCI
Ajouter un commentaire
Réponse
-4
moins plus
Hello Again,


Please, quelqu'un aura une réponse à ma question?
Ma demande est urgente.

thanks
Ajouter un commentaire
Ce document intitulé « PHP : REcuperation d'un ID après INSERT » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?