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