[PHP/MySQL]Rendre une cnx persistante au pool avant la fin du script?

Rendre une cnx persistante au pool avant la fin du script? [PHP/MySQL] - PHP - Programmation

Marsh Posté le 28-06-2006 à 09:11:41    

Salut,
 
J'utilise PHP/MySQL dans un environnement Apache.
 
J'ai une question concernant les connexions persistantes. ("pconnect" )
 
Je sais qu'elles sont retournées au pool à la fin de mon script.
 
Maintenant, imaginons que mon script utilise l'une de ces connexions, et qu'il voudrait rendre la connexion dispo dans le pool avant la fin du script, car celui ci a un gros temps d'exécution... Est ce possible? ou alors dois-je quand même attendre la fin du script?*
 
Merci

Reply

Marsh Posté le 28-06-2006 à 09:11:41   

Reply

Marsh Posté le 28-06-2006 à 09:32:18    

Evite d'utiliser les connections persistantes ..
Si je me trompe pas elles ont même été enlevées dans mysqli ...


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 28-06-2006 à 09:39:14    

Je ne pense pas que je vais les utiliser, car je saiss que MySQL est très rapide à la connexion, et que donc, il y a assez peu d'intérêt à utiliser les connection persistantes, mais quand même, je me posais cette question, et j'aurais aimé savoir...
 
D'autre part, vu que j'utilise PHP 4.4.1 (webhosting...), il n'y aura pas de mysqli pour moi.
 
Donc? Une idée pour ma question?

Reply

Marsh Posté le 28-06-2006 à 13:55:40    

+1 pour esox_ch  
 
c est une faille sécuritaire en soi
tu demandes une connexion juste au besoin aussi longue soit elle

Reply

Marsh Posté le 28-06-2006 à 14:33:21    

Non, mais je crois que vous n'avez pas compris ma demande, d'un point de vue technique.
 
OK:
 
Imaginons que j'ai deux scripts tournant en parallèle, utilisant chacun une connexion persistante. Une fois que les scripts auront terminé, ces deux connexions resteront établies, et reviendront dans le pool de connex.
 
Après, imaginons que je lance un autre script, utilisant l'une des deux connex du pool. Ce script utilise cette connexion pendant 1 seconde, puis ensuite fait un gros traitement, mais n'a plus besoin de la connexion. Cependant, il ne va la restituer au pool qu'à la fin du script, donc, par exemple, 1 minute après.
 
Dès lors, si pendant cette minute, mes deux premiers scripts sont relancés, 'lun des deux n'aura plus de connexion dispo dans le pool, et donc, une 3ème connexion va être créée...alors que si mon gros script avait pu relâcher la connexion, celà aurait permis de ne pas avoir à créer la 3ème connexion...
 
VOus voyez où je veux en venir?

Reply

Marsh Posté le 28-06-2006 à 15:01:35    

non je comprends meme pas ton truc de pool
j imagine a peine ce que c est c est tout :D
 
"Ce script utilise cette connexion pendant 1 seconde, puis ensuite fait un gros traitement, mais n'a plus besoin de la connexion."
 
alors tu la fermes a ce moment n importe qui a acces a ta bdd avec les droits associés c est super dangereux
 
il vaut mieux trois connexions ponctuelles qu une seule grosse toujours ouverte apres tu fais ce que tu veux je dis juste que c est pas secure

Reply

Marsh Posté le 28-06-2006 à 15:07:54    

mIRROR a écrit :

non je comprends meme pas ton truc de pool
j imagine a peine ce que c est c est tout :D
 
"Ce script utilise cette connexion pendant 1 seconde, puis ensuite fait un gros traitement, mais n'a plus besoin de la connexion."
 
alors tu la fermes a ce moment n importe qui a acces a ta bdd avec les droits associés c est super dangereux
 
il vaut mieux trois connexions ponctuelles qu une seule grosse toujours ouverte apres tu fais ce que tu veux je dis juste que c est pas secure


Reply

Marsh Posté le 28-06-2006 à 15:21:25    

C'est quoi ces histoires de faire des gros traitements en gardant ta connection ouverte ? :heink: ... Des que tes requetes sont balancées tu fais un petit mysql_close() et comme ça pas besoin que mysql crée des nouveaux threads ... Parcontre (faudrait que qqn de plus compétent que moi confirme), si je me trompe pas mysql ouvre par defaut 20 threads de connection, donc tant que c'est 1 script long qui s'execute ... ça doit pas être catastrophique ... reste qu'il faut fermer la connection


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 28-06-2006 à 15:26:24    

esox_ch a écrit :

C'est quoi ces histoires de faire des gros traitements en gardant ta connection ouverte ? :heink: ... Des que tes requetes sont balancées tu fais un petit mysql_close() et comme ça pas besoin que mysql crée des nouveaux threads ... Parcontre (faudrait que qqn de plus compétent que moi confirme), si je me trompe pas mysql ouvre par defaut 20 threads de connection, donc tant que c'est 1 script long qui s'execute ... ça doit pas être catastrophique ... reste qu'il faut fermer la connection


 
Mais... Je parle ici de connexions persistantes. (mysql_pconnect si tu préfères)...
Ce que tu dis est OK pour une connxion standard, mais ce n'est pas de ça dont je parle ici. (http://fr2.php.net/manual/en/funct [...] onnect.php)
Ca permet de ne pas avoir à fermer la connexion...
 
Je précise bien depuis le début que je parle de connexion persistante, et nonn pas de connexion standard...
 
Je cherche donc à rendre la connexion une fois que je n'en ai plus besoin, pendant mon traitement!


Message édité par Yoyo@ le 28-06-2006 à 15:27:14
Reply

Marsh Posté le 28-06-2006 à 15:32:15    

Citation :

Mais... Je parle ici de connexions persistantes. (mysql_pconnect si tu préfères)...
Ce que tu dis est OK pour une connxion standard, mais ce n'est pas de ça dont je parle ici. (http://fr2.php.net/manual/en/funct [...] onnect.php)


 
ah on peut faire des connexion sql avec php  [:petrus dei]  

Reply

Marsh Posté le 28-06-2006 à 15:32:15   

Reply

Marsh Posté le 28-06-2006 à 16:47:18    

mIRROR a écrit :

Citation :

Mais... Je parle ici de connexions persistantes. (mysql_pconnect si tu préfères)...
Ce que tu dis est OK pour une connxion standard, mais ce n'est pas de ça dont je parle ici. (http://fr2.php.net/manual/en/funct [...] onnect.php)


 
ah on peut faire des connexion sql avec php  [:petrus dei]


 
Je ne dois pas saisir la subtilité de ton propos...
 
Bon, quelqu'un d'autre pour m'aider (qui comprenne vraiment ce que je demande?)

Reply

Sujets relatifs:

Leave a Replay

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