Mysql_insert_id

Résolu
mickadevelop Messages postés 55 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 4 juin 2010 - 6 oct. 2008 à 13:24
gr43 Messages postés 95 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 8 septembre 2010 - 6 oct. 2008 à 18:41
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

gr43 Messages postés 95 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 8 septembre 2010
6 oct. 2008 à 14:23
Salut, non puisqu'un id est unique et Mysql gère le mutli utilisateur et pose des verrous lors d'une écriture.
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
6 oct. 2008 à 16:19
salut

c'est pas exactement ca, mais en effet, ca ne peut pas provoquer d'erreur.
3
mickadevelop Messages postés 55 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 4 juin 2010
6 oct. 2008 à 17:15
Merci Beaucoup pour vos réponses et votre rapidité

mickadevelop
0
gr43 Messages postés 95 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 8 septembre 2010
6 oct. 2008 à 18:08
Holla,
@coucou747: tu ne veux pas développer un plus ta réponse?
Cela me sera tjs utile ainsi que pour mickadevelop
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
6 oct. 2008 à 18:30
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)
0
gr43 Messages postés 95 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 8 septembre 2010
6 oct. 2008 à 18:41
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
0
Rejoignez-nous