TourDeJeu, le réseau des jeux en ligne alternatifs : jeux web multijoueurs, jeux par forum. En savoir +

Flux RSS des discussions du forum : pour les joueurs, et pour les créateurs et MJ
  Reply to this topicStart new topicStart Poll

> [optimisation] Id De La Dernière Insertion...
Sybler
Ecrit le : Lundi 16 Octobre 2006 à 05h01
Quote Post


Ouf
*

Groupe : Membre
Messages : 453


Deux facons de faire:

CODE

$result = mysql_query("SELECT LAST_INSERT_ID();",$con);
$msgid = mysql_result($result,0);


et

CODE

$msgid = mysql_insert_id($con);


Dans quel cas l'utilisation de l'un par rapport à l'autre est-il préférable ?

>> Le premier est une requête, est-ce que ca signifie que si une autre insertion se passe entre les 2 requêtes, le résultat sera erroné ?

>> Le fait que la seconde facon ne fasse pas de requête signifie t'il que l'information est déjà existante après une requête et que la première facon va chercher une information déjà disponible... ?


--------------------
user posted image
PMEmail PosterUsers Website
Top
Vantik
Ecrit le : Lundi 16 Octobre 2006 à 09h13
Quote Post


Kid
*

Groupe : Membre
Messages : 44


mysql_insert_id();

Cette fonction utilisée ainsi (vide) renvoi l'id de la dernière fonction INSERT. Si tu l'a place donc immédiatement aprés l'id de requete que tu veux en la stoquant dans un variable t'en fais ce que t'en veux.

ex :
$id1 = mysql_insert_id();
PMEmail Poster
Top
naholyr
Ecrit le : Lundi 16 Octobre 2006 à 17h46
Quote Post


Ouf
*

Groupe : Membre
Messages : 423


J'ai dans l'idée que la seconde est un raccourci de la première. Dans tous les cas, je ne vois aucune raison de préférer la première façon.
PMEmail PosterUsers WebsiteICQYahoo
Top
Sybler
Ecrit le : Mardi 17 Octobre 2006 à 03h40
Quote Post


Ouf
*

Groupe : Membre
Messages : 453


QUOTE (Vantik @ 16 Oct 2006, 08:13 )
mysql_insert_id();

Cette fonction utilisée ainsi (vide) renvoi l'id de la dernière fonction INSERT. Si tu l'a place donc immédiatement aprés l'id de requete que tu veux en la stoquant dans un variable t'en fais ce que t'en veux.

ex :
$id1 = mysql_insert_id();

Heu... ouais, j'étais un peu au courrant.. la question était: y a t'il une différence entre les deux facons.


naholyr >> ouais, c'est mon avis aussi.


--------------------
user posted image
PMEmail PosterUsers Website
Top
Haiken
Ecrit le : Mardi 17 Octobre 2006 à 19h12
Quote Post


Ouf
*

Groupe : Membre
Messages : 360


La fonction last_insert_id() ne sert que si tu veux réutiliser la valeur dans une requête juste après, par exemple une insertion :

insert into table values (last_insert_id(),123)


Sinon, il peut y avoir une petite différence dans le résultat renvoyé par les méthodes (cf doc)

QUOTE
Notez que mysql_insert_id() retourne la valeur stockée dans une colonne AUTO_INCREMENT, que cette valeur ait été générée automatiquement en enregistrant NULL ou 0 ou une valeur explicite. LAST_INSERT_ID() retourne les valeurs générées automatiquement par AUTO_INCREMENT. Si vous stockez une valeur explicite, autre que NULL ou 0, cela n'affecte pas le résultat de LAST_INSERT_ID().




--------------------
PMEmail Poster
Top
Sybler
Ecrit le : Vendredi 27 Octobre 2006 à 03h01
Quote Post


Ouf
*

Groupe : Membre
Messages : 453


hum, donc il y a une différence.
Pas certain de comprendre l'intérêt d'une méthode qui fonctionne uniquement dans un cas d'une insertion nulle sad.gif


--------------------
user posted image
PMEmail PosterUsers Website
Top
wells
Ecrit le : Vendredi 27 Octobre 2006 à 10h08
Quote Post


Pro
*

Groupe : Membre
Messages : 143


Bah l'interet est de gérer l'auto incrément et c'est deja énorme.

Si tu veux insérer dans une table avec l'id du dernier auto incrément, t obliger de faire une requête ou d'utiliser cette fonction....ce qui est bien pratique wink.gif


--------------------
user posted image
PMEmail PosterUsers Website
Top
Sybler
Ecrit le : Vendredi 27 Octobre 2006 à 22h06
Quote Post


Ouf
*

Groupe : Membre
Messages : 453


QUOTE (wells @ 27 Oct 2006, 09:08 )
Bah l'interet est de gérer l'auto incrément et c'est deja énorme.

Si tu veux insérer dans une table avec l'id du dernier auto incrément, t obliger de faire une requête ou d'utiliser cette fonction....ce qui est bien pratique wink.gif

Merci de me sous-estimer à ce point mais la question est quelle est la différence entre les deux facons de faire, pas est-ce que ces fonctions sont utiles.


--------------------
user posted image
PMEmail PosterUsers Website
Top
« Sujets + anciens | Programmer | Sujets + récents »

Reply to this topicStart new topicStart Poll