Cette réponse comporte deux parties. La première réponse est {Active}
. perldoc DBI
dit:
attributs communs à tous ANSES
Ces attributs sont communs à tous les types de poignées DBI. [...]
"Active" (booléen, lecture seule)
L'attribut "actif" est vrai si l'objet poignée est "actif". C'est rarement utilisé dans les applications. La signification exacte de est quelque peu vague au moment. Pour une base de données gérer signifie généralement que le handle est connecté à une base de données ("$ dbh-> disconnect" définit "Active" off).
C'est probablement ce que vous voulez vérifier.
La deuxième réponse est que, tandis que vous pouvez appeler ping()
, ou vérifier le résultat de SELECT 1
, il n'y a pas beaucoup de point. Cela vous indiquera en effet si le handle de la base de données est connecté au moment de cette vérification. Mais ce que vous voulez vraiment savoir, c'est si le gestionnaire de base de données est connecté lorsque vous faites ce que vous êtes sur le point de faire, n'est-ce pas? Et il y a toujours une chance que la connexion échoue entre votre chèque et tout ce que vous voulez réellement faire. Donc, un vrai résultat de l'un ou l'autre n'est pas une garantie de quoi que ce soit.
Si vous effectuez une surveillance d'état, un ping()
ou un SELECT 1
fonctionnera correctement. Dans une application, cependant, ne vérifiez pas la validité d'un dhp avant de faire quelque chose. Connectez-vous simplement et utilisez le dbh que vous récupérez, et effectuez une vérification d'erreur appropriée à chaque étape. Il n'y a pas de substitut pour vérifier correctement les erreurs.