IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème de gestion des erreurs MySQL


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème de gestion des erreurs MySQL
    Bonjour,

    J'ai créer une fonction de connexion à une base de données (en utilisant mysqli), qui fonctionne parfaitement. Sauf pour la gestion des erreurs : lorsqu'une erreur se produit, une redirection est censée être effectuée vers une page d'erreur dédiée. Mais ça ne me redirige pas et ça affiche simplement une erreur normale. Voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
    	function DB_Connect($DB_Host, $DB_User, $DB_Password, $DB_Database)
    	{
    		if(isset($DB_Host) AND isset($DB_User) AND isset($DB_Password) AND isset($DB_Database))
    		{
    			if(!empty($DB_Host) AND !empty($DB_User) AND !empty($DB_Password) AND !empty($DB_Database))
    			{
    				$DB = mysqli_connect($DB_Host, $DB_User, $DB_Password, $DB_Database);
    				if(!isset($DB))
    				{
    					$_SESSION['ERROR_CODE'] = base64_encode('DB_CONNECT.FCN#DB-CONNECT');
    					REDIRECT_Header('ERROR');
    				}
    				else
    				{
    					$DB->real_query('SELECT RESULT FROM es_test');
    					$DB_ANSWER = $DB->use_result();
    					while($DB_DATA = $DB_ANSWER->fetch_assoc())
    					{
    						if(!isset($DB_DATA['RESULT']) OR $DB_DATA['RESULT'] != 'success')
    						{
    							$_SESSION['ERROR_CODE'] = base64_encode('DB_CONNECT.FCN#DB-CONNECT');
    							REDIRECT_Header('ERROR');
    						}
    					}
    				}
    			}
    			else
    			{
    				$_SESSION['ERROR_CODE'] = base64_encode('DB_CONNECT.FCN#EMPTY-ARGUMENTS');
    				REDIRECT_Header('ERROR');
    			}
    		}
    		else
    		{
    			$_SESSION['ERROR_CODE'] = base64_encode('DB_CONNECT.FCN#ISSET-ARGUMENTS');
    			REDIRECT_Header('ERROR');
    		}
    	}
    ?>
    Je précise que la fonction REDIRECT_Header fonctionne parfaitement (je l'ai testée), ce n'est donc pas elle qui pose problème. Je ne sais donc pas s'il me manque une partie de code, ou si c'est un problème dans mon code...

    J'espère que vous pourrez m'aider, merci d'avance !

    PS : Comme vous devez vous en douter, j'ai bien entendu créé une table es_test avec une colonne RESULT une entrée success.

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 131
    Points : 242
    Points
    242
    Par défaut
    Bonjour,

    Vaut mieux utilser try catch pour gerer les execptions; si ton code affiche des notices ou warrnings ton header location ne marchera pas.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci de la réponse. Est-ce que tu peux me passer le code de try/catch avec mysqli stp ? Ce n'est pas le même que pour PDO donc je ne le connais pas, et j'aimerais garder mysqli.

Discussions similaires

  1. Zend_Form Problème de gestion des erreurs
    Par flilou dans le forum Zend Framework
    Réponses: 19
    Dernier message: 13/07/2011, 09h25
  2. Problème de gestion des erreurs avec le module RIO
    Par menina_raquel dans le forum Ruby
    Réponses: 0
    Dernier message: 04/01/2011, 16h30
  3. [MySQL] gestion des erreurs mysql
    Par Abou Zar dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 27/01/2010, 12h52
  4. gestion des erreurs mysql
    Par PAYASS59 dans le forum Administration
    Réponses: 1
    Dernier message: 04/07/2008, 08h54
  5. gestion des erreurs mysql
    Par sefir dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 12/12/2007, 13h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo