PDO et wampserver

Résolu/Fermé
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - 23 juil. 2016 à 12:53
 Utilisateur anonyme - 24 juil. 2016 à 09:57
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
23 juil. 2016 à 13:39
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 dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 juil. 2016 à 15:36
Bonjour
Voici le lien concernant le fichier de connexon à ma BDD
Merci

https://www.cjoint.com/c/FGxnJtmeDJQ
0
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 dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 juil. 2016 à 17:36
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 dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 juil. 2016 à 17:39
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
23 juil. 2016 à 22:26
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 dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
24 juil. 2016 à 07:57
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
24 juil. 2016 à 09:57
"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