begin process at 2012 05 31 00:53:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Gestion des erreurs avec mysqli.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Gestion des erreurs avec mysqli.

lundi 21 septembre 2009 à 22:44:28 | Gestion des erreurs avec mysqli.

walterskinner

Bonjour,

j'apprends actuellement PHP et je rencontre un petit problème.

J'ai reproduit l'exemple de la doc PHP pour créer un objet de connexion à MySQL :

Code PHP :
class jfi_mysqli extends mysqli {


// Parametres de connexion a MySQL
private $_dbHost = "localhost";
private $_dbUser = "radius";
private $_dbPass = "XXXX";
private $_dbName = "radius";

public function __construct() {
parent::__construct($this->_dbHost, $this->_dbUser, $this->_dbPass, $this->_dbName);

if (mysqli_connect_error()) {
die('Erreur de connexion (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}

}

Mon objet fonctionne très bien quand tout est OK. Mais en cas d'erreur de connexion, j'ai le message suivant :
Code PHP :
Warning: mysqli::mysqli() mysqli.mysqli: (28000/1045): Access denied for user 'radius11'@'localhost' (using password: YES) in /var/www/admin.vfispot.com/inc_mysql.php on line 47

Erreur de connexion (1045) Access denied for user 'radius11'@'localhost' (using password: YES)

Alors que je devrais gérer l'erreur après le IF.

J'ai essayé avec TRY et j'ai le même problème :

Code PHP :
class jfi_mysqli extends mysqli {


// Parametres de connexion a MySQL
private $_dbHost = "localhost";
private $_dbUser = "radius11";
private $_dbPass = "XXXX";
private $_dbName = "radius";

public function __construct() {
try {
parent::__construct($this->_dbHost, $this->_dbUser, $this->_dbPass, $this->_dbName);
} catch (MySQLExeption $e) {
echo "Erreur de connexion : ". $e->RetourneErreur() ."<br />";
die('Erreur de connexion (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
if (mysqli_connect_error()) {
die('Erreur de connexion (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}

}

}

/**
* Gestion des erreurs avec les exeptions
*/
class MySQLExeption extends Exception
{
public function __construct($Msg) {
parent :: __construct($Msg);
}

public function RetourneErreur() {
$msg = '<div><strong>' . $this->getMessage() . '</strong>';
$msg .= ' Ligne : ' . $this->getLine() . '</div>';
return $msg;
}
}

C'est comme si l'erreur de conexion à MySQL n'était j'aimais interceptée.

Quelqu'un peut-il me dire où j'ai fait une erreur ? Merci d'avance.

Cordialement,

Jérôme

mardi 22 septembre 2009 à 06:56:34 | Re : Gestion des erreurs avec mysqli.

syndrael

Tu as une erreur d'authentification sur ta base et PHP fait son boulot pour te prévenir, essaie avec un login/password d'un root pour tester.
tu as essayé de te connecter au serveur mysql en ligne de commande via 'mysql -uroot -p' ?? normalement il te demande le mot de passe de Root.
S.

mardi 22 septembre 2009 à 07:29:55 | Re : Gestion des erreurs avec mysqli.

walterskinner

Bonjour,

Merci pour ta réponse. Mais, j'ai dù mal m'exprimer

Mon problème n'est pas de me connecter à la base de données. Cela fonctionne très bien.
C'est d'être capable d'intercepter les erreurs PHP/MySQL en cas de problème de connexion.

Merci pour vos réponses et votre aide

A+

Jérôme

mardi 22 septembre 2009 à 09:37:33 | Re : Gestion des erreurs avec mysqli.

syndrael

C'est normal ton '} catch (MySQLExeption $e) {'
au lieu de } catch (MySQLException $e) { ?
S.

mardi 22 septembre 2009 à 11:10:22 | Re : Gestion des erreurs avec mysqli.

walterskinner

Hello,

En fait, MySQLExeption était une fonction perso.

Mais même en utilisant MySQLException, je n'intercepte pas les erreurs.

Cela peut-il être dù à un problème de configuration de mon serveur PHP ?

Merci de ton aide

Amicalement,

Jérôme



Cette discussion est classée dans : erreur, private, connexion, connect, mysqli


Répondre à ce message

Sujets en rapport avec ce message

Erreur de connexion a la base de donnée [ par glagaffe ] je viens de prendre la fonction de webmaster et je ne suis qu'un débutant en PHP alors je récupère des sources.J'utilise EasyPhp et quans j'utilise le conexion à une base de données oracle [ par vingrid6 ] j'ai réécrite la fonctionmais j'ai une erreur au niveau de la gestion d'erreurFonction de connection à la basePrivate connexion As StringDim strErreur Une page differente suivant l'URl de connexion. [ par vsss ] BonsoirJ'ai plusieurs adresses qui von vers le même repertoire.Je voudrai que la page qui s'affiche soi fonction de l'URL a partir de laquelle, le vis Problème avec la fonction ftp_connect [ par WaNoU ThE EpSyLoN ] voilà j'essai de faire un script d'upload d'image et pour cela je doit établir la connexion sur le server ftp de free ( mon hébergeur) pour,  par la s Erreur de connexion ODBC avec PHP et Access [ par xosais ] Bonjour, j'utilise un lien ODBC "mabase" (réalisée en Access). Serveur : W2000 + IIS 5.0 + PHP 4.3.9 A la connexion par : odbc_connect('mabase','',' pb avec CREATE DATABASE [ par Joleroy ] Bonjour a tous,J' ai ecrit ce petit bout de code qui crée un utilisateur, lui creer un base de donnée, et lui donne des droit sur cette  base.Voici le erreur incompréhensible [ par chamallow ] Faut croire que tout a décidé de planter maintenant!Alors, on y va :)J'ai un fichier qui vérifie mon authentification (les mots de pass et password ét Pb... [ par taxidogkiller ] Bonjour, je suis un débutant en php ( je n'est que 13 ans ),  MYSQL me dit que j'ai une erreur mais je n'arrive pas à la voir ... (ce serait du coté d Erreur de connexion ?! [ par Tilix ] Salut, Alors voilà, j'vous donne ma fonction et mon problème : require ("inc/sql.inc.php"); $select = "SELECT * FROM Table WHERE id='".$_GET['Mes Erreur MySQL [ par coockiesch ] Salut! Je viens d'installer, sur mon ordi, Apache2, MySQL, PHP5 et PhpMyAdmin. On m'a demandé de choisir l'extension mysqli, je choisi mysqli (pas dif


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales