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 :

PDO erreur de connexion [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    juin 2006
    Messages
    2 027
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 2 027
    Points : 697
    Points
    697
    Par défaut PDO erreur de connexion
    Bonjour,

    Mon environnement est un NAS Synology avec :
    - Apache/2.2.34 (Unix)
    - PHP Version 5.6.40
    - mysqlnd 5.0.11

    Je souhaite me connecter à la base de données mais n'y arrive pas.

    J'ai donc fait un script très court :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    try {
        $dbh = new PDO('mysql:host=localhost;dbname=agora', 'user', 'password');
        foreach($dbh->query('SELECT * from FOO') as $row) {
            print_r($row);
        }
        $dbh = null;
    } catch (PDOException $e) {
        print "Erreur !: " . $e->getMessage() . "<br/>";
        die();
    }
    ?>
    Et j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur !: SQLSTATE[HY000] [2002] No such file or directory
    Ma base de données existe bien puisque je la vois depuis phpMyAdmin avec le même login/password.
    Le serveur base de donnée affiché dans phpMyAdmin est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Serveur : MariaDB 10 (Localhost via UNIX socket)
    Merci pour votre retour d'expérience sur une connexion via PDO, c'est une 1ère pour moi.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    avril 2007
    Messages
    8 407
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2007
    Messages : 8 407
    Points : 15 959
    Points
    15 959
    Par défaut
    Question bête : est-ce que ça fonctionne si tu utilise mysqli ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    juin 2006
    Messages
    2 027
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 2 027
    Points : 697
    Points
    697
    Par défaut
    Oh que ce n'est pas bête. J'ai donc fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $mysqli = new mysqli("localhost", "user", "password", "agora");
    if ($mysqli->connect_errno) {
        echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    }
    echo $mysqli->host_info . "\n";
     
    $mysqli = new mysqli("127.0.0.1", "user", "password", "database", 3306);
    if ($mysqli->connect_errno) {
        echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    }
    et le retour est
    Warning: mysqli::mysqli(): (HY000/2002): No such file or directory in
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  4. #4
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    juin 2006
    Messages
    2 027
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 2 027
    Points : 697
    Points
    697
    Par défaut
    Bonjour,

    J'ai modifié mon script pour le host :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $mysqli = new mysqli("localhost", "user", "password", "agora");
    if ($mysqli->connect_errno) {
        echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    }
    echo $mysqli->host_info . "\n";
     
    $mysqli = new mysqli("127.0.0.1", "user", "password", "database", 3306);
    if ($mysqli->connect_errno) {
        echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    Et l'erreur qui s'affiche maintenant est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MySQL : (2002) Connection refused
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  5. #5
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    15 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 15 608
    Points : 31 887
    Points
    31 887
    Par défaut
    Bonjour,

    1- Euhhh... Je ne pense pas que Celira te proposais d'utiliser mysqli_, mais juste de tester la connexion avec.

    Le mieux est quand même d'utiliser PDO.

    A LIRE :


    2- Vérifie aussi tes paramètres de connexion à la BDD.
    En local, souvent, "user", "password" vaut "root", "".
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie."
    Albert Einstein (1879-1955).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  6. #6
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    juin 2006
    Messages
    2 027
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 2 027
    Points : 697
    Points
    697
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,

    1- Euhhh... Je ne pense pas que Celira te proposais d'utiliser mysqli_, mais juste de tester la connexion avec.

    Le mieux est quand même d'utiliser PDO.

    A LIRE :


    2- Vérifie aussi tes paramètres de connexion à la BDD.
    En local, souvent, "user", "password" vaut "root", "".
    Merci le mysqli est juste pour le test, oui j'utiliserai que le PDO.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try {
        $dbh = new PDO('mysql:host=localhost:/run/mysqld/mysqld10.sock;dbname=agora', 'root', 'root');
        foreach($dbh->query('SELECT * from FOO') as $row) {
            print_r($row);
        }
        $dbh = null;
    } catch (PDOException $e) {
        print "Erreur !: " . $e->getMessage() . "<br/>";
        die();
    Je garde cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur !: SQLSTATE[HY000] [2002] Connection refused
    Les identifiants fonctionnent avec PHPMyAdmin.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  7. #7
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    15 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 15 608
    Points : 31 887
    Points
    31 887
    Par défaut
    Je t'ai mis des liens.
    Manifestement, tu n'as pas lu...
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie."
    Albert Einstein (1879-1955).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  8. #8
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    juin 2006
    Messages
    2 027
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 2 027
    Points : 697
    Points
    697
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Je t'ai mis des liens.
    Manifestement, tu n'as pas lu...
    Oui merci pour ces liens que je l'avoue j'avais lu lundi pour voir d'où provenait mon erreur et je ne suis pas retourné depuis.

    J'ai installé sur mon PC le logiciel Agora qui s'est installé tout seul.
    Je l'ai ensuite installé sur mon NAS Synology et impossible de l'installé.
    Je me suis douté qu'il pouvait éventuellement y avoir un problème au niveau de la connexion à la base de données et notamment avec le hostname.
    D'où mon petit script indépendant de test de connexion pour essayer de me connecter.
    L'objectif n'étant pas de réécrire l'accès de agora à la base de données, mais de comprendre quel(s) paramètre(s) je lui donne et qui est faux.

    Et si j'applique ce qu'il y a dans les liens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try {
                $pdo = new PDO('mysql:host=localhost:/run/mysqld/mysqld10.sock;port=3306;dbname=agora;charset=utf8','root', 'root', [
                PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
                PDO::ATTR_EMULATE_PREPARES   => false
                ]);
             } 
             catch (PDOException $e) {
                throw new InvalidArgumentException('Erreur connexion à la base de données : '.$e->getMessage());
                exit;
             }
    J'ai cette erreur qui est identique à mes autres tests :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Erreur connexion à la base de données : SQLSTATE[HY000] [2002] Connection refused' in /volume1/web/agora/test.php:37 Stack trace: #0 {main} thrown in /volume1/web/agora/test.php on line 37
    Tape pas trop fort si l'erreur est une évidence.

    Merci.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  9. #9
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    juin 2006
    Messages
    2 027
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 2 027
    Points : 697
    Points
    697
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Je t'ai mis des liens.
    Manifestement, tu n'as pas lu...
    J'ai repris le script de connexion des liens pour faire un autre test :
    Code : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
    // @author : rawsrc - 2018 - Pour DVP
    // on vérifie si la fonction de connexion a déjà été définie afin d'éviter de la redéfinir
    if ( ! function_exists('db_connexion')) {
       function db_connexion() {
          // une fois ouverte, on renvoie toujours la même connexion
          static $pdo;
          // on vérifie si la connexion n'a pas déjà été initialisée
          if ( ! ($pdo instanceof PDO)) {
             // tentative d'ouverture de la connexion MySQL
             try {
                $pdo = new PDO('mysql:host=localhost:/run/mysqld/mysqld10.sock;port=3306;dbname=agora;charset=utf8','root', 'root', [
                PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
                PDO::ATTR_EMULATE_PREPARES   => false
                ]);
             } 
             catch (PDOException $e) {
                throw new InvalidArgumentException('Erreur connexion à la base de données : '.$e->getMessage());
                exit;
             }
          }
          // renvoi de la ressource : connexion à la base de données
          return $pdo;
       }
    }
    return db_connexion();
    Lorsque je l'exécute, j'ai toujours le même message :
    Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Erreur connexion à la base de données : SQLSTATE[HY000] [2002] Connection refused' in /volume1/web/test_db_mysql.php:18 Stack trace: #0 /volume1/web/test_db_mysql.php(26): db_connexion() #1 /volume1/web/test.php(4): include('/volume1/web/te...') #2 {main} thrown in /volume1/web/test_db_mysql.php on line 18
    Je ne dois pas savoir lire ou mes lunettes peut-être.

    Le type de base de données est MariaDB sur mon Synology.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    avril 2007
    Messages
    8 407
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2007
    Messages : 8 407
    Points : 15 959
    Points
    15 959
    Par défaut
    Dans ton dernier test, il y a un truc qui m'embête : tu as à la fois le host et la socket, ça fait un peu beaucoup. Essaye avec : 'mysql:unix_socket=/run/mysqld/mysqld10.sock;port=3306;dbname=agora;charset=utf8'.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    juin 2006
    Messages
    2 027
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 2 027
    Points : 697
    Points
    697
    Par défaut
    Citation Envoyé par Celira Voir le message
    Dans ton dernier test, il y a un truc qui m'embête : tu as à la fois le host et la socket, ça fait un peu beaucoup. Essaye avec : 'mysql:unix_socket=/run/mysqld/mysqld10.sock;port=3306;dbname=agora;charset=utf8'.
    Merci effectivement je n'ai plus d'anomalie dans mon script de test.

    J'avais choisi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    host=localhost:/run/mysqld/mysqld10.sock
    Parce que dans d'autres applications web de mon synology, c'était ce qui était enregistré dans le scipt de connexion et ces application fonctionnent.

    Je vais donc essayer d'aller un peu plus loin dans l'installation de mon package agora.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  12. #12
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    juin 2006
    Messages
    2 027
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 2 027
    Points : 697
    Points
    697
    Par défaut
    Citation Envoyé par Celira Voir le message
    Dans ton dernier test, il y a un truc qui m'embête : tu as à la fois le host et la socket, ça fait un peu beaucoup. Essaye avec : 'mysql:unix_socket=/run/mysqld/mysqld10.sock;port=3306;dbname=agora;charset=utf8'.
    Dans le script de connexion du package agora c'est comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //CONNEXION À LA BDD
    define("db_host", "unix_socket=/run/mysqld/mysqld10.sock");
    define("db_login", "root");
    define("db_password", "root");
    define("db_name", "agora");
    Et du coup j'ai l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: PDO::__construct(): php_network_getaddresses: gethostbyname failed. errno=0 in /volume1/web/agora/app/ModOffline/CtrlOffline.php on line 208
    Le ligne 208 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objPDO=new PDO("mysql:host=".$db_host.";dbname=".$db_name.";charset=utf8;", $db_login, $db_password, array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  13. #13
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    15 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 15 608
    Points : 31 887
    Points
    31 887
    Par défaut
    Argh...

    Ce sont des CONSTANTES PHP que tu définis !

    Il ne faut donc pas de $ devant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objPDO=new PDO("mysql:host=".db_host.";dbname=".db_name.";charset=utf8;", db_login, db_password, array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
    N.B. Conventionnellement, on écrit les CONSTANTES en MAJUSCULES.
    Ça permet justement de les distinguer.
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie."
    Albert Einstein (1879-1955).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  14. #14
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    juin 2006
    Messages
    2 027
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 2 027
    Points : 697
    Points
    697
    Par défaut
    Merci, mais c'est le code du soft qui est comme cela et il fonctionne très bien sur mon PC mais pas sur mon synology.
    Donc je laisse "$" en place.

    Enfin il me semble que c'est mieux de ne rien toucher au soft.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  15. #15
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    15 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 15 608
    Points : 31 887
    Points
    31 887
    Par défaut
    Pas mieux.
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie."
    Albert Einstein (1879-1955).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  16. #16
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    avril 2007
    Messages
    8 407
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2007
    Messages : 8 407
    Points : 15 959
    Points
    15 959
    Par défaut
    Je pense que le problème, c'est que tu as le morceau "host:" en dur dans ton soft. Essaye peut-être d'ajouter un ";" au début de la chaine du host pour voir si il l'ignore au profit de la socket :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    define("db_host", ";unix_socket=/run/mysqld/mysqld10.sock");
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  17. #17
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    juin 2006
    Messages
    2 027
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 2 027
    Points : 697
    Points
    697
    Par défaut
    Citation Envoyé par Celira Voir le message
    Je pense que le problème, c'est que tu as le morceau "host:" en dur dans ton soft. Essaye peut-être d'ajouter un ";" au début de la chaine du host pour voir si il l'ignore au profit de la socket :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    define("db_host", ";unix_socket=/run/mysqld/mysqld10.sock");
    Merci pour cette information que je vais tester.
    J'avais déjà pris le parti de modifier le soft comme ça en suivant ta recommandation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $objPDO=new PDO("mysql:unix_socket=".$db_host.";dbname=".$db_name.";charset=utf8;", $db_login, $db_password, array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
    Et c'est clair que la connexion fonctionne maintenant.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    juin 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : juin 2011
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    Bonjour

    J'ai aussi un problème de connexion même avec un code que copier d'ici (Comprendre le PDO)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    try {
        $strConnection = 'mysql:host=mzfs.myd.infomaniak.com;dbname=mzfs_rttans'; //Ligne 1
        $arrExtraParam= array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"); //Ligne 2
        $pdo = new PDO($ConnectStr, ' ', ' ', $arrExtraParam); //Ligne 3; Instancie la connexion
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//Ligne 4
    }
    catch(PDOException $e) {
        $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
        die($msg);
    }
    ?>
    et il m'indique:
    ERREUR PDO dans /home/clients/7f5f92c8e92b09ec7590e92c28bb70ec/web/RTTANS/Membres/maconnexion.php L.13 : invalid data source name
    La ligne 13 est celle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $PDO=New PDO($connectStr, 'utilisateur','mot de passe',EtraParam);
    Je pense à un problème avec le fournisseur mais pas sûr du tout!
    Merci d'avance
    Cestmoi

  19. #19
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    15 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 15 608
    Points : 31 887
    Points
    31 887
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        $strConnection = '....';
        ....
        $pdo = new PDO($ConnectStr....
    Tu vois ou pas ?
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie."
    Albert Einstein (1879-1955).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    juin 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : juin 2011
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    Oui je viens de voir!! Merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [PDO] Connexion avec PDO [Erreur : could not find driver]
    Par Berlo56 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 22/04/2014, 10h41
  2. [PDO] PDO Erreur de connexion ": SQLSTATE[HY000] [2002]"
    Par baffreux dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/04/2014, 16h40
  3. [PDO] erreur de connexion PDO
    Par Souri84 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/04/2011, 13h57
  4. [PDO] Erreur HY000 lors d'un New PDO pour une connexion sur Mysql
    Par siciliano21 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 22/07/2009, 15h19

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