IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

mysql_insert_id() et accès concurrent


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 89
    Par défaut mysql_insert_id() et accès concurrent
    Bonjour !

    Voilà, au cours de mon stage, pour gérer les insertions dans des tables liées j'utilise assez souvent mysql_insert_id() afin de récupérer le dernier id automatiquement généré.

    Cependant, j'en viens à me poser une petite question :
    Vu que ma base sera accessible par tout le réseau (quoique, il n'y a en fait que 5-6 postes) et que l'accès sera simultané, est-il possible qu'il y ait un risque que je ne récupère pas le bon id ?

    Car apparemment ça récupère le dernier idée auto-incrémenté de la connexion mysql ouverte (via mysql_connect), mais si des utilisateurs différents via de différents postes exécutent une requête d'insertion par exemple, est-il possible que je récupère le mauvais id via mysql_insert_id() ?

    Autre question : Qu'en est-il de la requete sql LAST_INSERT_ID ?
    Apparemment son utilisation est justifié juste si on a un champs auto-increment de type BIGINT ?
    Quelle utilisation est préférable ? (pour les tests j'ai mis BIGINT mais vu que je n'aurais à priori pas assez d'insertions pour attendre le max int, j'pourrais très bien utiliser un INT aussi).
    Qu'en pensez-vous ?

    Merci beaucoup !

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Dakuan Voir le message
    pour gérer les insertions dans des tables liées j'utilise assez souvent mysql_insert_id() afin de récupérer le dernier id automatiquement généré.
    Quel est le but plus précisément ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    1. LAST_INSERT_ID n'est pas une reqquête, mais une fonction SQL
    2. LAST_INSERT_ID() ou mysql_insert_id() récupère le dernier id créé pour la connexion courante. S'il y a 10 utilisateurs, il y a 10 connexions, chacun la sienne.

Discussions similaires

  1. mysql_insert_id() et accès concurrents
    Par renaudjuif dans le forum Langage
    Réponses: 4
    Dernier message: 02/09/2006, 13h38
  2. Réponses: 22
    Dernier message: 25/08/2005, 16h03
  3. Lenteur et acces concurrent
    Par JeanMarc_T2k dans le forum Bases de données
    Réponses: 7
    Dernier message: 04/12/2004, 20h57
  4. acces concurrent avec delphi 5 entreprise
    Par Jean_paul dans le forum Bases de données
    Réponses: 2
    Dernier message: 30/11/2004, 20h19
  5. [EJB] Accès concurrents à la base de données
    Par cameleon2002 dans le forum Java EE
    Réponses: 10
    Dernier message: 23/09/2003, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo