IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

La connexion en local échoue [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut La connexion en local échoue
    Bonjour,

    je tente une connexion en local, mais ça échoue (y a un sablier qui s'affiche mais ne s'arrête jamais (même au bout de plusieurs minutes))

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    function debug($location, $var)  //var_dump amélioré
    {
        echo "<br/>".(is_string($location))?$location:''."<br/><pre>";
        var_dump($var);
        echo "</pre><br/>";
    }
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "nom_bdd";
    $connect="mysql:host=".$servername.";dbname=".$dbname.",".$username.",".$password;
    debug("elevage test 14 connect",$connect);
    $mysql = new PDO($connect);
    debug("elevage test 15 mysql",$mysql);exit;

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Le login et le mot de passe sont respectivement le deuxième et le troisième paramètre du constructeur de PDO, ils ne sont donc pas à concaténer avec le premier paramètre.
    Autre chose, sur Unix/linux, localhost provoquera des résultats inattendus, mieux vaut le remplacer par son IP correspondante (probablement 127.0.0.1).
    Ajoute aussi le port de connexion (probablement 3306) ainsi que le charset adéquate (utf8mb4).

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Merci pour ta réponse qui me permet d'avancer mais pas encore d'aboutir...

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    function debug($location, $var)  //var_dump amélioré
    {
        echo "<br/>".(is_string($location))?$location:''."<br/><pre>";
        var_dump($var);
        echo "</pre><br/>";
    }
     
    $servername="120.0.0.1";
    $username = "root";
    $password = "";
    $dbname = "elevage";
    $dsn='mysql:host='.$servername.';port=3306';
    $dsn.='dbname='.$dbname.';charset=utf8';
    $mysql = new PDO($dsn,$username,$password);
    debug('elevage test.php 16 mysql',$mysql);exit();

    Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] Une tentative de connexion a échoué car le parti connecté n’a pas répondu convenablement au-delà d’une certaine durée ou une connexion établie a échoué car l’hôte de connexion n’a pas répondu. in C:\projets\dvp\elevage\test.php on line 15

  4. #4
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $servername="120.0.0.1";
    C'est pas plutôt 127 que 120? (Je n'utilise pas xampp, mais j'imagine qu'il doit y avoir un moyen de savoir quelle IP et quel port est utilisé par le serveur SQL).

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Bien vu...

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    function debug($location, $var)  //var_dump amélioré
    {
        echo "<br/>".(is_string($location))?$location:''."<br/><pre>";
        var_dump($var);
        echo "</pre><br/>";
    }
     
    $servername="127.0.0.1";
    $username = "root";
    $password = "";
    $dbname = "elevage";
    $dsn='mysql:host='.$servername.';port=3306';
    $dsn.='dbname='.$dbname.';charset=utf8';
    $mysql = new PDO($dsn,$username,$password);
    debug('elevage test.php 16 mysql',$mysql);exit();
    Mais avec ça, retour du sablier (ça doit faire 2 heures qu'il tourne...)

  6. #6
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Il manque aussi un point-virgule après le port. D'ailleurs tu devrais utiliser les doubles quotes dans ce cas là, tu y verrais plus clair:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dsn = "mysql:host=$servername;port=3306;dbname=$dbname;charset=utf8";

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pb de connexion en local avec user ldap
    Par crenaze dans le forum Réseau
    Réponses: 1
    Dernier message: 31/01/2007, 14h44
  2. différence de connexion listener/local
    Par jokos2000 dans le forum Oracle
    Réponses: 1
    Dernier message: 12/01/2007, 14h54
  3. [WINDOWS] : Pbl adresse ip connexion reseau local
    Par forsay1 dans le forum Administration
    Réponses: 2
    Dernier message: 27/07/2006, 16h28
  4. Probleme quand j'essaie de reparer ma connexion reseau local
    Par dachir dans le forum Administration
    Réponses: 5
    Dernier message: 21/07/2006, 16h22
  5. Réponses: 28
    Dernier message: 28/07/2005, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo