Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1789 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  connexion persistante = connexion partagée ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

connexion persistante = connexion partagée ?

n°2127726
SV_LVH
Posté le 22-02-2012 à 09:40:40  profilanswer
 

Bonjour tout le monde,
 
Je viens de découvrir les connexions persistantes pendant une formation MySQL. Le formateur nous a expliqué que les connexions persistantes, une fois ouvertes, sont partagées par tous les utilisateurs.
 
Il nous expliquait donc que dans le cas d'un last_insert_id on ne pouvait être sûr que l'id récupéré est bien le notre. Il pourrait très bien être un id insérer par un collègue vu que l'on partage la connexion.
 
Comme ce formateur c'est déjà planté quelques fois pendant cette formation j'aurais aimé une confirmation sur le sujet.
 
Thx

mood
Publicité
Posté le 22-02-2012 à 09:40:40  profilanswer
 

n°2127841
MEI
|DarthPingoo(tm)|
Posté le 22-02-2012 à 17:55:50  profilanswer
 

Heu en principe, mais je m'avance peut-être car je ne suis pas expert MySQL, une connexion persistance ça veut dire que tu gardes la même connexion même quand ton processus (PHP je pense dans ton cas je pense) est coupé.
 
I.e. le client MySQL se charge de garder la connexion active et opérationnelle.
 
Par contre, jamais de la vie (et même dans des mécanismes de pool de connexion côté serveur dans d'autres SGBD) tu partages ta session avec quelqu'un d'autre. Ca va à l'encontre du modèle relationnel car tu ne peux alors plus assuré la cohérence des données à chacun (quid des commit/rollback :??:).
 
Après la doc. de MySQL ne laisse pas paraitre un quelconque doute a propos de la pertinence de last_insert_id() : http://dev.mysql.com/doc/refman/5. [...] ue-id.html
 
Ou alors le formateur s'est mal exprimé. :??:


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°2127845
SV_LVH
Posté le 22-02-2012 à 18:22:26  profilanswer
 

Non non, je lui ai posé la question avec argumentations à la clé mais il n'en démordait pas. Mais je me méfiais quand même de sa réponse donc voilà..
 
Vous confirmez mes soupçons, merci pour votre réponse.

n°2127852
mrbebert
Posté le 22-02-2012 à 19:12:08  profilanswer
 

+1 avec MEI
La connexion est persistante dans le sens où un script qui s'exécute récupèrera la connexion utilisée par un précédent. Mais celui-ci est terminé.
A chaque instant, il n'y a qu'un seul script qui utilise la connexion, donc pas de souci avec le last_insert_id :)


---------------
Doucement le matin, pas trop vite le soir.
n°2128198
SV_LVH
Posté le 24-02-2012 à 08:47:43  profilanswer
 

Re!
 
On vient de m'envoyer un lien qui explique le contraire me semble t-il  : http://www.php.net/manual/fr/funct [...] onnect.php
 

Citation :

mysql_pconnect() se comporte exactement comme mysql_connect(), mais [...] à la différence majeure :
 
Lors de la connexion, la fonction essaie de trouver une connexion permanente déjà ouverte sur cet hôte, avec le même nom d'utilisateur et de mot de passe. Si une telle connexion est trouvée, son identifiant est retourné, sans ouvrir de nouvelle connexion.


 
Donc tous les utilisateurs utilisant les mêmes identifiants partagent la même connexion non?

n°2128205
MEI
|DarthPingoo(tm)|
Posté le 24-02-2012 à 09:10:36  profilanswer
 

SV_LVH a écrit :

Re!
 
On vient de m'envoyer un lien qui explique le contraire me semble t-il  : http://www.php.net/manual/fr/funct [...] onnect.php
 

Citation :

mysql_pconnect() se comporte exactement comme mysql_connect(), mais [...] à la différence majeure :
 
Lors de la connexion, la fonction essaie de trouver une connexion permanente déjà ouverte sur cet hôte, avec le même nom d'utilisateur et de mot de passe. Si une telle connexion est trouvée, son identifiant est retourné, sans ouvrir de nouvelle connexion.


 
Donc tous les utilisateurs utilisant les mêmes identifiants partagent la même connexion non?


Oui mais tu es point de vue PHP, i.e. forcement dans ton script PHP propre.
 
Point de vue MySQL, elle aura une connexion par IP/user/password (voir plusieurs suivant comment c'est implémenté en détail... sous Oracle c'est une connexion par thread Apache).


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  connexion persistante = connexion partagée ?

 

Sujets relatifs
Access connexion HelpConnexion MySQL et Visual 2010 C++
pb de connexion SQL/ODBC via PHPConnexion base oracle via fonction PHP
Error connexion with Ethernet NIC card using winpcapEtre informé lors d'une connexion TSE
[RESOLU] connexion SSH2 sous windowsconnexion a la base de données ne marche pas
Connexion Oracle 11g en oci 
Plus de sujets relatifs à : connexion persistante = connexion partagée ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR