PDO et wampserver

Résolu
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,
J'ai installé sur mon PC wampserver 2.5 et j'ai une méthode qui me permet de me connecter à ma BDD MySql en utilisant PDO, cela me retourne une erreur....
Warning: PDO::__construct(): in C:..............
Impossible de se connecter à la base de donnée
Erreur : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: H�te inconnu.
N° : 2002

Dans les extension PHP de wampserver il est bien coché "php_pdo_mysql" l'icone de wamp est verte serveur en ligne et pourtant "impossible de me connecter à ma BDD".
Pouvez-vous s'ils vous plait me donner un coup de main pour résoudre ce problème.
je vous remercie.
voici le fonction de connexion
function bdd() {

    //L'adresse IP du serveur sous lequel le script courant est en train d'être exécuté.
    if ($_SERVER['SERVER_ADDR'] == '127.0.0.1') {
        //données pour la connexion à la base de données local
        $PARAM_hote        	='localhost';     	//nom du serveur mysql
        $PARAM_nom_bdd     ='mon_site'; 	//le nom de la base de données
        $PARAM_utilisateur 	='root';          	//login
        $PARAM_mot_passe   	='';              	//mot de passe pour se connecter

    	try {
            //connexion à la BDD (Création d'une instance de la classe PDO)
            //On cré l'objet $bdd à l'aide de la commande new suivi du nom de la classe
            $bdd = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bdd, $PARAM_utilisateur, $PARAM_mot_passe);
            $bdd->exec("SET CHARACTER SET utf8");
            $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
            $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	}

    	catch(Exception $e) {
            //sinon on affiche l'erreur
            echo 'Impossible de se connecter à la base de donnée</br>';
            echo 'Erreur : ' .  $e->getMessage() . '<br />';
            echo 'N° : ' .      $e->getCode();
    	}
    }
}
A voir également:

7 réponses

Utilisateur anonyme
 
Bonjour

Très étonnant, il ne connaît pas 'localhost'. Pourtant tout à l'air correct.
Tu peux mettre le fichier sur cjoint.com pour vérifier s'il n'y a pas un caractère invisible qui se glisse quelque part ?
0
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   6
 
Bonjour
Voici le lien concernant le fichier de connexon à ma BDD
Merci

https://www.cjoint.com/c/FGxnJtmeDJQ
0
Utilisateur anonyme
 
Aucun caractère caché, chez moi ton script reconnaît bien 'localhost'.

Le nom de fichier et la ligne du message d'erreur, que tu as masqués, correspondent bien à la ligne 15 de ce fichier ?

Edit:
Sait-tu aller voir dans ton fichier hosts ? C'est lui qui définit le localhost.
0
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   6
 
En fait je ne comprends pas car je vais sur mes projets et je clique sur mon site j'ai bien cette URL "http://localhost/mon_site/"
et sur la page d'accueil de wampserveur phpmyadmin j'ai bien accès à ma BDD

J'ai testé quelque chose en fait sur mon hébergeur avec ce même fichier de connexion tout marche normalement c'est simplement en local que c'est le bazarre, sinon oui je peux aller voir sur le fichier hosts si tu peux me guider un peu
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   6
 
j'ai également une deuxième erreur je ne sais pas si c'est lié

Notice: Undefined variable: bdd in C.............

c'est la ligne où il y a return
return $bdd;
0
Utilisateur anonyme
 
le "undefined variable : bdd" est une conséquence de l'autre erreur.
Donne les messages d'erreur complets avec le nom de fichier et le numéro de ligne.
Pour le fichier hosts, ça ne sert à rien : si ton PC connaît bien "http://localhost/mon_site/" et que de plus phpmayadmin marche.
0
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   6
 
Bonjour,
En fait j'ai fait ça et tout fonctionne correctement c'est vraiment incroyable
<?php
function bdd() {

        $PARAM_hote        	='localhost';     	
        $PARAM_nom_bdd     	='mon_site'; 	
        $PARAM_utilisateur 	='root';          	
        $PARAM_mot_passe   	='';              	

    	try {
            $bdd = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bdd, $PARAM_utilisateur, $PARAM_mot_passe);
            $bdd->exec("SET CHARACTER SET utf8");
            $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
            $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	}

    	catch(Exception $e) {
            echo 'Impossible de se connecter à la base de donnée</br>';
            echo 'Erreur : ' .  $e->getMessage() . '<br />';
            echo 'N° : ' .      $e->getCode();
    	}
	return $bdd;
}
?>

je te remercie pour ton aide.
0
Utilisateur anonyme
 
"C'est vraiment incroyable" n'est pas une explication.
Tu t'es contenté de retirer le test de $_SERVER['SERVER_ADDR'] ? Je n'y crois pas une seconde, il y a autre chose.
0