Comment puis-je vérifier si PHP est connecté à une base de données déjà?
Essentiellement en pseudo code, je suis à la recherche de quelque chose comme
if (connected_to_any_database()) {
//do nothing
}
else {
mysql_connect(...)
}
Comment puis-je mettre en œuvre
connected_to_any_database()
- Double Possible de vérifiez si la connexion mysql est valide
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé mysql_ping()?
Alternativement, un second (moins fiable) approche serait:
Mise à jour: De PHP 5.5-delà, l'utilisation mysqli_ping() à la place.
mysqli_ping()
--verbose
option est activée.Essayez d'utiliser PHP mysql_ping fonction:
Vous aurez besoin d'ajouter le "@" de supposer MySQL Avertissements que vous aurez pour l'exécution de cette fonction sans être connecté à une base de données.
Il y a d'autres façons, mais cela dépend du code que vous utilisez.
mysql_ping
essaie d'établir une connexion de données vide si aucune connexion n'est présente encore? Je ne vois pas de moyen d'éviter la@
sauf retournement de rapport d'erreur pour cette ligne, qui est effectivement la même choseset_error_handler()
?mysql_ping
. Analyser les traces? Et si vous voulez l'appelermysql_ping
à un autre endroit, mais prendre une autre action avec l'erreur (comme l'afficher)?mysql_ping
avant... (je veux dire quelque part dans un autre fichier, vous n'êtes pas sûr que vous avez inclus)
plus tard...
Baron Schwartz blogs qui en raison de conditions de course, ce "vérifier avant d'écrire" est une mauvaise pratique. Il prône un try/catch avec un motif
reconnect
dans les captures. Voici le pseudo-code, il recommande:Voici son plein blog: https://www.percona.com/blog/2010/05/05/checking-for-a-live-database-connection-considered-harmful/
mysql_ping()
fait un certain nombre d'hypothèses, trop, par exemple, qu'il n'y a pas de connexions multiples, ou que, s'il existe, les identificateurs de ressources sont disponibles pour la fonction de faire la vérification. Qui hypothèse de travail la meilleure, l'OP va décider. C'est la façon dont fonctionne