Récupérer les id d'une requete d'insertion etendue?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupérer les id d'une requete d'insertion etendue?

par Ryle » 15 févr. 2006, 11:05

Ce serait à confirmer, mais je pense qu'il fonctionne par session de connexion... en gros, avec mysql_insert_id, tu ne dois pas pouvoir récuperer les id des enregistrements qui ont été fait sous une autre "session" que la tienne.

Ce n'est que de la théorie, mais je pense que cela fonctionne comme suit :

A insère l'id 1
B insère l'id 2
Si A interroge mysql_insert_id, il retourne 1
Si B interroge mysql_insert_id, il retourne 2

A insère l'id 1
B insère l'id 2
A insère l'id 3
Si A interroge mysql_insert_id, il retourne 3
Si B interroge mysql_insert_id, il retourne 2

par scrat » 15 févr. 2006, 10:44

merci mais mysql_insert_id() renvoit un entier donc un seul id. D'après mes test il me renvoi le premier id de la requete etendue... Il faudrai pouvoir récupérer tous les id générés... :?

par Hubert Roksor » 15 févr. 2006, 02:59

Le last_insert_id est maintenu "on a per-connection basis", donc ce sera la valeur comprise entre A et C.

par fab » 15 févr. 2006, 01:40

Dailleurs question un peu hors sujet, mais ça me trouble
Imaginons on est pendant l'éxécution d'un script ( S )on effectue un requete ( A ) un peu plus loins dans ce script on utilise la fonction mysql_insert_id() ( B )qui va donc nous retourner l'auto incrément apres la requete A. Mais si pendant le labs de temps ( aussi minime soit t'il ) qui sépare A et B un truc script completement indépendant de celui là a lui aussi fait un insert sur la meme table ( C ) il aura donc modifier la valeur de l'auto increment.
La question est lors de l'appel de B dans le script S ça sera la valeur apres A ou apres C qui sera retourné ???

Si je suis pas clair faut le dire, il est tard j'ai une escuse :p

par Cyrano » 15 févr. 2006, 01:12

Si tu utilises MySQL, regarde du coté de mysql_insert_id()

Récupérer les id d'une requete d'insertion etendue?

par scrat » 14 févr. 2006, 18:49

Hello,

je voulais savoir s'il existait un moyen de récupérer les id (auto_increment) générés lors d'une requete d'insertion étendue genre:

Code : Tout sélectionner

INSERT INTO table (id, nom) VALUES (NULL, 'nom1'), (NULL, 'nom2'), (NULL, 'nom3'),
Car je fais des insertion de masses et ce genre de requête est bien plus rapide à l'execution.

Merci d'avance ;)