Menu

Problème de connexion au base de donnée mysql [Résolu]

asilm71 5 Messages postés mercredi 7 février 2018Date d'inscription 8 février 2018 Dernière intervention - 7 févr. 2018 à 01:02 - Dernière réponse : asilm71 5 Messages postés mercredi 7 février 2018Date d'inscription 8 février 2018 Dernière intervention
- 8 févr. 2018 à 23:18
Salut, j'ai un problème avec la connexion au base de donnée phpmyqdmin. quand j'essai de me connecté, on me renvoi ceci:
SQLSTATE[HY000] [1045] Acc�s refus� pour l'utilisateur: ''@'@localhost' (mot de passe: NON). j'ai vérifié mon code et je ne trouve pas où se trouve l'erreur. s'il vous plait aidez-moi. Voici le code:
try{
    $db = new PDO('mysql:host='.$conf['host'].';dbname='.$conf['database'].';'.$conf['login'].$conf['password']);
  }catch(PDOException $e){
    die($e->getMessage());
  }


EDIT : Ajout des balises de code (la coloration syntaxique).

Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
Jordane45
Afficher la suite 

Votre réponse

11 réponses

jordane45 21201 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 27 mai 2018 Dernière intervention - 7 févr. 2018 à 07:17
0
Merci
Bonjour
As tu vérifié le contenu de Ta variable $conf ??
Fais en un print__r
jordane45 21201 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 27 mai 2018 Dernière intervention - 7 févr. 2018 à 17:06
Essaye ceci
try{
$bdd =new PDO('mysql:host='.$conf['host'].';dbname='.$conf['database'].'; charset=utf8', $conf['login'], $conf['password']);
// Activation des erreurs PDO
 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
 $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
     print_r($_conf);
    die('Erreur : ' . $e->getMessage());
}
Commenter la réponse de jordane45
le père. 6058 Messages postés mardi 15 mai 2012Date d'inscription 24 mai 2018 Dernière intervention - 7 févr. 2018 à 12:20
0
Merci
Bonjour

Ta connexion est incorrecte. Il faut passer 3 paramètres à new PDO, et toi tu en passes un seul puisque tu concatènes tout, y compris le login et le mot de passe qui devraient être les 2e et 3e paramètres.
Commenter la réponse de le père.
asilm71 5 Messages postés mercredi 7 février 2018Date d'inscription 8 février 2018 Dernière intervention - 8 févr. 2018 à 01:52
0
Merci
Bonjour, j'ai vérifié $conf. il ne contient pas d'erreur et j'ai ajouté le code que ma conseille zordane 45 . Il y a eu une petite modification. Le login et le password ont été accepté par contre il ne se connecte toujour pas. Voici ce qui s'affiche :
SQLSTATE[HY000][1102] Nom de base de donnée illégal : 'base' . Pourtant ce base existe belle et bien sur phpmyadmin.
jordane45 21201 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 27 mai 2018 Dernière intervention - 8 févr. 2018 à 03:52
Je pense que tu n'as pas le droit de nommer ta base "base".
Change son nom....
Commenter la réponse de asilm71
asilm71 5 Messages postés mercredi 7 février 2018Date d'inscription 8 février 2018 Dernière intervention - 8 févr. 2018 à 09:51
0
Merci
J'ai changé le nom de la base. Je ne sais pas si le problème viens de là parce que j'ai essayé plusieurs mots mais en vain il n' ya aucune transformation.
Je suis allé jusqu'à creer une autre base de donnée. Ça affiche toujours la même chose qu' avant. Je ne sais pas pourquoi.
jordane45 21201 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 27 mai 2018 Dernière intervention - 8 févr. 2018 à 10:05
donc:
1 - Il nous faut le message d'erreur COMPLET et EXACT
2 - T nous montres ton code actuel
3 - Tu nous affiches le résultat d'un PRINT_R de $conf

Ensuite tu nous indiqueras si ta BDD est hébergée sur le même serveur que ta page PHP ou pas.
Tu vérifieras aussi si l'accès à la bdd fonctionne (peux tu y accéder via phpmyadmin par exemple )
Commenter la réponse de asilm71
asilm71 5 Messages postés mercredi 7 février 2018Date d'inscription 8 février 2018 Dernière intervention - 8 févr. 2018 à 11:11
0
Merci
Merci pour l'aide.
1. SQLSTATE[HY000] [1102] Nom de base de donnée illégal : 'blog'
2.
public $db = 'default';

public function __construct (){
$conf = Conf::$databases [$this->db];
try {
 $db = new PDO ('mysql:host'. $conf['host'].';dbname='. $conf['database'].';charset=utf8', $conf ['password']);
}catch (PDOException $e){
  if (Conf::$debug >= 1){
        die ($e->getMessage ());
  } else {
       die ('Impossible de se connecter à la base de donnée ');
}
}
}
 
voici le code qui se trouve dans la class Conf:
 static $debug = 1;

static  $databases = array (

'default' => array  (
'host' => 'localhost',
'database' => 'blog',
'login' => 'root',
'password' => ' '
)
);

3. Le résultat de print_r:
Array ([host] => localhost [database] => blog [login] => root [password] => )
je travil en local sur wamp. Oui base de donnée est est accessible sur phpmyadmin.
jordane45 21201 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 27 mai 2018 Dernière intervention - 8 févr. 2018 à 12:43
Dans ton code... tu as oublié un = non ?
$db = new PDO ('mysql:host'. $conf['host'].'

//alors que tu devrais avoir :
$db = new PDO ('mysql:host='.$conf['host'].'
le père. 6058 Messages postés mardi 15 mai 2012Date d'inscription 24 mai 2018 Dernière intervention - 8 févr. 2018 à 14:35
Sans compter le login qui a disparu… Mais ça n'explique pas ce message d'erreur.
asilm71 5 Messages postés mercredi 7 février 2018Date d'inscription 8 février 2018 Dernière intervention - 8 févr. 2018 à 23:18
Merci pour vos aides. J'ai repris tout le code. Maintenant ça marche très bien.
Commenter la réponse de asilm71