acces concurentiel

acces concurentiel - PHP - Programmation

Marsh Posté le 08-05-2003 à 17:52:11    

salut,
 
j ai un code en gros ca donne ca :
 

Code :
  1. function insert($val) {
  2. $requete = "INSERT INTO TABLE1 (champ1,champ2) values ($val,2);";
  3. mysql_query($requete,$connexion);
  4. $result = mysql_insert_id();
  5. return $result;
  6. }


 
il se passe quoi si 2 personnes appellent cette fonction en meme temps et que l ordre d appel des fonctions donne :
 
 
mysql_query user1
mysql_query user2
mysql_insert_id user2
mysql_insert_id user1
 
ca veut dire que user2 aura l ID de la ligne de user 1 et vice versa
 
 
c pas cool
 
 
comment peut on remedier a ca ?  
 
merci

Reply

Marsh Posté le 08-05-2003 à 17:52:11   

Reply

Marsh Posté le 08-05-2003 à 18:02:01    

y'a de l'embrouille la... je vois comment ca peut donner ce que tu dit ton truc.

Reply

Marsh Posté le 08-05-2003 à 18:04:27    

mysql_insert_id() est lié à une connexion. Si tu scripts PHP font des insertions, ils utiliseront chacun leur propre connexion à la base, donc ne se mélangeront pas leur LAST_INSERT_ID() (ce que renvoie en fait mysql_insert_id()) :)

Reply

Marsh Posté le 08-05-2003 à 18:17:10    

mrBebert a écrit :

mysql_insert_id() est lié à une connexion. Si tu scripts PHP font des insertions, ils utiliseront chacun leur propre connexion à la base, donc ne se mélangeront pas leur LAST_INSERT_ID() (ce que renvoie en fait mysql_insert_id()) :)  


 
pas si sûr que toi ... par prudence, je passerai l'identifiant de connexion en paramètre.  :)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 08-05-2003 à 18:20:42    

ok merci en fait ca donne ca :
 

Code :
  1. function insert($val) {
  2. $requete = "INSERT INTO TABLE1 (champ1,champ2) values ($val,2);";
  3. mysql_query($requete,$connexion);
  4. $result = mysql_insert_id($connexion);
  5. return $result;
  6. }


 
 
mysql_query connexion1
mysql_query connexion2
mysql_insert_id connexion2
mysql_insert_id connexion1
 
 
donc la pas de pb ;-)  
 
 
merci encore !!!

Reply

Marsh Posté le 08-05-2003 à 18:26:16    

simogeo a écrit :

pas si sûr que toi ... par prudence, je passerai l'identifiant de connexion en paramètre.  :)  

J'en suis sur et certain. 2 scripts PHP n'utilisent pas la même connexion à la base de données, donc ne se mélangeront pas leurs LAST_INSERT_ID().
 
Ce qui est défférent du cas où 1 script utilise 2 connexions vers 2 bases de données différentes.

Reply

Marsh Posté le 08-05-2003 à 18:29:21    

mrBebert a écrit :

J'en suis sur et certain. 2 scripts PHP n'utilisent pas la même connexion à la base de données, donc ne se mélangeront pas leurs LAST_INSERT_ID().
 
Ce qui est défférent du cas où 1 script utilise 2 connexions vers 2 bases de données différentes.


 
ah oui exact  :), (désolé pour le doute)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed