Mysql_insert_id [Résolu]

Signaler
Messages postés
55
Date d'inscription
mardi 15 février 2005
Statut
Membre
Dernière intervention
4 juin 2010
-
Messages postés
95
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2010
-
Bonjour,

j'ai une question concernant la fonction mysql_insert_id() dans le cadre d'un fonctionnement multi utilisateur n'y as t'il pas de risque de récupere un mauvais identifiant si il y a plusieurs insert en meme temps (ou presque). Merci pour votre réponse merci.

mickadevelop

6 réponses

Messages postés
95
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2010

Salut, non puisqu'un id est unique et Mysql gère le mutli utilisateur et pose des verrous lors d'une écriture.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
salut

c'est pas exactement ca, mais en effet, ca ne peut pas provoquer d'erreur.
Messages postés
55
Date d'inscription
mardi 15 février 2005
Statut
Membre
Dernière intervention
4 juin 2010

Merci Beaucoup pour vos réponses et votre rapidité

mickadevelop
Messages postés
95
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2010

Holla,
@coucou747: tu ne veux pas développer un plus ta réponse?
Cela me sera tjs utile ainsi que pour mickadevelop
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
c'est une variable de session (session mysql pas php hein...):

sudo] password for max:

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 10

Server version: 5.0.51a-3ubuntu5.1 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> CREATE DATABASE IF NOT EXISTS test;

Query OK, 1 row affected (0.07 sec)

mysql> USE test

Database changed

mysql> CREATE TABLE insertion(id int UNSIGNED AUTO_INCREMENT, PRIMARY KEY(id));

Query OK, 0 rows affected (0.07 sec)

mysql> INSERT INTO insertion VALUES();

Query OK, 1 row affected (0.05 sec)

mysql> INSERT INTO insertion VALUES();

Query OK, 1 row affected (0.00 sec)

mysql> SELECT LAST_INSERT_ID()

    -> ;

+------------------+

| LAST_INSERT_ID() |

+------------------+

|                2 |

+------------------+

1 row in set (0.00 sec)

ensuite, on fait sur une autre console :

max@max-laptop:~$ sudo mysql -p

[sudo] password for max:

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 11

Server version: 5.0.51a-3ubuntu5.1 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> USE test

Database changed

mysql> INSERT INTO insertion VALUES();

Query OK, 1 row affected (0.00 sec)

mysql> SELECT LAST_INSERT_ID();

+------------------+

| LAST_INSERT_ID() |

+------------------+

|                3 |

+------------------+

1 row in set (0.00 sec)

mysql>

                            

puis on retourne sur la premiere :

mysql> SELECT LAST_INSERT_ID();

+------------------+

| LAST_INSERT_ID() |

+------------------+

|                2 |

+------------------+

1 row in set (0.00 sec)
Messages postés
95
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
8 septembre 2010

Oui tu prouve que last_insert_id() correspond bien à la connexion Mysql. Mais en fait j'avais mal compris la question de mickadevelop. Je pensais qu'il avait peur que plusieurs insert génère le même id. En tout cas merci de ton explication.
Tchao