Rechercher : dans
Par :

[php mysql] Savoir si connexion déjà ouverte

Dernière réponse le 30 mar 2004 à 11:19:34 Tittom, le 30 mar 2004 à 10:36:08 
 Signaler ce message aux modérateurs

Bonjour,

Je souhaite écrire un script, qui s'appuie sur une base MySQL.

Etant donné que ce script doit pouvoir être encapsulé dans un autre script, je veux éviter d'ouvrir une connexion MySQL spécifique dans mon script s'il en existe déjà une ouverte.
D'autre part, si c'est mon script qui a ouvert la connexion MySQL, alors il doit la fermer. Si non, alors il doit la laisser ouverte.

Quelqu'un a-t-il une solution ?

Merci pour vos idées.

-- 
Tittom (ça c'est de la signature)

1

kalamit, le 30 mar 2004 à 10:39:09

Salut Tittom,
Y'a peut etre la fonction mysql_ping qui peut t'aider:
http://fr3.php.net/manual/fr/function.mysql-ping.php

Kalamit,
Parle à ma culasse, mon carter est malade. :)

Répondre à kalamit

2

 Tittom, le 30 mar 2004 à 11:19:34

Merci pour cette bonne piste.
J'ai fait quelques tests :

<?php
//$id = mysql_connect("localhost", "root", "");

echo "<pre>";
if (!@mysql_ping()) {
    echo "Aucune connexion n'est ouverte.\n";
    echo "Ouverture d'une connexion...\n";
    $id = mysql_connect("localhost", "root", "");
    $fermer_connexion = true;
} else {
    // la connexion existe deja, on ne doit pas la fermer en sortant
    echo "Une connexion était déjà ouverte en début de script.\n";
    $fermer_connexion = false;
}

if (!@mysql_ping()) {
    echo "Connexion inactive !\n";
} else {
    echo "Connexion active.\n";
}

if ($fermer_connexion) {
    echo "Fermeture de la connexion...\n";
    mysql_close($id);
}

if (!@mysql_ping()) {
    echo "Aucune connexion n'est ouverte.\n";
} else {
    echo "La connexion est encore ouverte.\n";
}

echo "</pre>";
?>


== Résultat en appelant ce script sans avoir ouvert de connexion ==
Aucune connexion n'est ouverte.
Ouverture d'une connexion...
Connexion active.
Fermeture de la connexion...
Aucune connexion n'est ouverte.


== Résultat en appelant ce script en ayant déjà ouvert une connexion ==

Une connexion était déjà ouverte en début de script.
Connexion active.
La connexion est encore ouverte.

==============================


Ca répond complètement à mon besoin, merci !

-- 
Tittom (ça c'est de la signature)

Répondre à Tittom