Connexion à une base Mysql
Bonjour,
j'ai utilisé la fonction ci-dessous, pour tester la connexion à une base Mysql, mais j'ai un message d'erreur sur l'utilisation de header au sein de la fonction mis dans un include.
function test_connect($serveur , $login , $pwd) { ob_start(); if (!mysql_connect($serveur,$login,$pwd)): ob_end_clean(); header("localhost: messages/message_echec_connexion.php"); exit; endif;
Warning: Cannot modify header information - headers already sent by (output started at D:\Soft\wamp\www\script.php:5) in chemin de l'include.
Est-ce la bonne méthode ou vaut-il mieux tester par code retour la connexion dans le code principal ?
Merci d'avance.
Cordialement Vincent.
Réponses apportées à cette discussion
Salut,
Tu peux tout simplement faire comme cela :
<?php
$connexion = mysql_connect($host, $login, $password);
if(!$connexion) {
trigger_error('Connexion impossible sur le serveur de bases de données');
exit;
}
if(!mysql_select_db($base, $connexion) {
trigger_error('Connexion sur la base de données impossible');
exit;
}
?>
++
Bonsoir,
je pense que c'est la meilleure solution. Si j'ai un peu de temps je regarderai les solutions type "objet".
Merci pour le message.
Cordialement Vincent.
Bonjour,
Ce n'est pas forcément LA meilleure ni l'ultime solution pour ce genre de situtation mais ce code a le mérite de tester la valeur de retour des fonctions mysql_*() et d'arrêter le déroulement u programme à la moindre erreur qui survient. Une autre manière de procéder serait par exemple de logguer l'erreur de connexion dans un fichier de logs et d'utiliser les auto_prepend de PHP pour intercepter les trigger_errors et ainsi provoquer un déroulement alternatif du programme. Par exemple, plutôt que de couper net l'exécution du programme, la fonction appellée par l'auto prepend redirigerai ton utilisateur vers une page d'erreur 500 ou vers un message de maintenance par exemple.
++