Erreur de connexion base de donnée PDO [Résolu/Fermé]

Signaler
Messages postés
96
Date d'inscription
dimanche 23 mars 2014
Statut
Membre
Dernière intervention
7 août 2016
-
Messages postés
96
Date d'inscription
dimanche 23 mars 2014
Statut
Membre
Dernière intervention
7 août 2016
-
Bonsoir,
Lorsque j'ai voulu connecter ma base de donnée à mon site, je reçois l'erreur Erreur : SQLSTATE[28000] [1045] Access denied for user 'madriax1_dev'@'localhost' (using password: YES)

Pourtant j'ai réutilisé le script que j'avais pour tout mes autres sites, mais ça ne marche pas, pourtant j'ai tout les accès utilisateurs à la base de donnée.
Le code est le suivant:
<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=(db_name)', '(username)', '(password)');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>

2 réponses

Messages postés
30210
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2020
2 988
Bonjour,
Voici quelques points à vérifier :
- Tu n'as pas les parenthèses dans ton "vrai" code de connexion j'espère ?!
- Et.. cette page web se trouve sur le même serveur que la BDD ou ailleurs ?
- Es-tu sûr et certain d'avoir écris tes identifiants EXACTEMENT comme il faut ?
- Si tu vas sur phpmyadmin, parviens tu à te connecter avec ces identifiants ?

Messages postés
96
Date d'inscription
dimanche 23 mars 2014
Statut
Membre
Dernière intervention
7 août 2016
1
Non bien sûr que non les parenthèses sont remplacées par les identifiants.
Cette page se trouve en effet sur le même serveur que la bdd.
Et les identifiants sont correct, je peux y accéder depuis phpmyadmin :/
Messages postés
30210
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2020
2 988
Tu peux essayer ça (en modifiant les valeurs si nécéssaire)
<?php
$host = 'localhost';
$user = 'madriax1_dev';
$pwd  = 'xxxxx';
$dbname  = 'ta_bdd';
$charset = ";charset=UTF8"; //si tu veux avoir de l'utf8
 try{
   $pdo = new PDO("mysql:host=".$host.";dbname=".$dbname.$charset.",".$user.",".$pwd);
   $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	 $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
} 


Mais bon.... 999 fois sur 10000 ... c'est une erreur de frappe.... un espace en trop par exemple...

Assures toi également que ton fichier est bien encodé en utf8 sans bom. parfois des caractères invisibles peuvent mettre le bazar. ( pour vérifier, ouvre le avec notepad++ puis regarde dans le menu "encodage")
Messages postés
96
Date d'inscription
dimanche 23 mars 2014
Statut
Membre
Dernière intervention
7 août 2016
1
Finalement j'ai trouvé le problème ! Le mot de passe commençais par "_" et ça ne fonctionnement bizarrement pas O.o En le retirant ça re fonctionne...

Merci pour ton aide !