new mysqli (): comment intercepter une erreur 'impossible à connecter'?
Je suis en train de faire ce (oui, je suis en utilisant mal les données de connexion, c'est à force d'erreur de connexion )
26 try {
27 $connection = new mysqli('localhost', 'my_user', 'my_password', 'my_db') ;
28 } catch (Exception $e ) {
29 echo "Service unavailable";
30 exit (3);
31 }
Mais PHP est en train de faire ce php_warning:
mysqli::mysqli(): (28000/1045): Accès refusé pour l'utilisateur 'my_user'@'localhost' (using password: YES)
Dans l'exemple que j'utilise mal les données de connexion à la force d'une erreur de connexion, mais dans le monde réel la base de données peut être arrêté ou le réseau pourrait être en baisse... etc..
Question: Est-il un moyen, sans supprimer les avertissements, les pour intercepter un problème avec la connexion de base de données ?
source d'informationauteur realtebo | 2013-03-21
Vous devez vous connecter pour publier un commentaire.
Vous devez dire à mysqli lancer des exceptions:
Maintenant vous voulez attraper l'exception, et vous pouvez le prendre à partir de là.
Pour PHP 5.2.9+
Vous devrez définir le Mode de Rapport à un niveau strict, comme jeroen suggère, mais le code ci-dessus est encore utile pour spécifiquement la détection d'une erreur de connexion. La combinaison de ces deux approches est ce qui est recommandé dans le Manuel PHP.
Vérifier
$connection->connect_error
valeur.Voir l'exemple ici: http://www.php.net/manual/en/mysqli.construct.php
mysqli_report(MYSQLI_REPORT_STRICT);, comme il est décrit ailleurs, me donne une erreur et arrête le script immédiatement. Mais ce ci-dessous semble fournir la sortie désirée pour moi...
D'essayer de le rattraper cette erreur avec try..catch() échouera.