Connexion à une base Mysql - Apprendre-PHP.com

Rechercher
Anaska - Spécialiste des formations Open-Source

Connexion à une base Mysql

Par vcoquelet -  3 reponses -  Le 17/03/2008 -  Flux RSS - 

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

Par Emacs -  Le 18/03/2008 - 

Salut,

Tu peux tout simplement faire comme cela :

  1. <?php
  2. $connexion = mysql_connect($host, $login, $password);
  3. if(!$connexion) {
  4. trigger_error('Connexion impossible sur le serveur de bases de données');
  5. }
  6.  
  7. if(!mysql_select_db($base, $connexion) {
  8. trigger_error('Connexion sur la base de données impossible');
  9. }
  10. ?>

++

 
Par vcoquelet -  Le 21/03/2008 - 

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.

 
Par Emacs -  Le 21/03/2008 - 

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.

++ 

 

Ajouter une réponse à la discussion

Seuls les membres loggués sont autorisés à poster dans les forums !