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

Langage PHP Discussion :

Connexion à la base de donnée msql avec PDO


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Chef du projet web
    Inscrit en
    août 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef du projet web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2014
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Connexion à la base de donnée msql avec PDO
    Bonjour,

    J'essaie de me connecter à la base via la fonction PDO mais je ne parviens pas.

    J'ai survoler la plus part des cours, je commence à croire que chez moi que ça coince (config)

    J'essaie d'y accéder en utilisant la notation objet ($r->message) en vain !

    Je vous remercie !

    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
    <?php
     
        try {
            $handler = new PDO('mysql:host=localhost; dbname=panier', 'root', '');
     
        } catch (Exception $e) {
            echo $e->getMessage();
            die();
        }
     
        $query = $handler->query('SELECT * FROM produits');
        // $r = $query->fetch(PDO::FETCH_OBJ);
        // echo '<pre>', print_r($r), '</pre>';
     
     
        while ($r = $query->fetch(PDO::FETCH_OBJ)) {
            echo $r->message, '<br>';
        } 
    ?>
    Les erreurs affichées :
    Notice: Undefined property: stdClass::$message in C:\laragon\www\panier\connexion.php on line 18
    Notice: Undefined property: stdClass::$message in C:\laragon\www\panier\connexion.php on line 18

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

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

    Informations forums :
    Inscription : avril 2007
    Messages : 8 566
    Points : 16 292
    Points
    16 292
    Par défaut
    Conseils de base génériques

    Active les exceptions PDO. Par défaut PDO est silencieux et ne te dira pas si ta requête plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $pdo = new PDO('mysql:host=localhost; dbname=panier', 'root', '', [
                PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
                PDO::ATTR_EMULATE_PREPARES   => false
                ]);
    Évite les select * et précise les colonnes que tu veux remonter et uniquement celles que tu veux remonter. Si tu as besoin de 2 assiettes, tu n'amènes pas toute la pile sur la table, surtout si tu as aussi des assiettes à soupe dans la pile. Et même si pour l'instant, tu ne possèdes que 2 assiettes, ça ne veut pas dire que tu ne vas pas en acheter dans le futur.

    Tu peux aussi indiquer des alias. Par exemple, si tu as une colonne en base qui s'appelle USR_NAME, un select USR_NAME as nom te permettra de manipuler $user->nom. Si tu travailles avec des normes de nommage strictes mais incompréhensibles au niveau de la base, ça peut être utile.
    Accessoirement, par défaut, fetchObject nomme les propriétés en respectant la casse de la requête. Ce qui veut dire que si ta requête est SELECT NOM FROM USER tu vas récupérer $obj->USER.

    Dans ton cas particulier, on voit que tu as essayé un print_r($r). Qu'est-ce que tu obtiens comme résultat ?
    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]

Discussions similaires

  1. [PDO] Connexion à une base de données distante avec PDO chez OVH
    Par Sevi Sandrine dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/03/2015, 10h42
  2. Réponses: 5
    Dernier message: 09/02/2010, 03h02
  3. Réponses: 5
    Dernier message: 22/10/2009, 22h12
  4. connexion à une base de donnée PostgreSQL avec Psycopg
    Par mon_proj dans le forum Bibliothèques tierces
    Réponses: 1
    Dernier message: 06/03/2008, 13h58
  5. Réponses: 1
    Dernier message: 25/09/2005, 17h18

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