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 :

acceder à la base de données [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 102
    Par défaut acceder à la base de données
    Bonjour à tous,
    Je pense avoir activé mon pdo, du coup pour tester j'ai exécuté ce bout de code
    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
    27
    <?php
    $PARAM_hote = 'localhost';//le chemin vers le serveur
    $PARAM_port = '3306';
    $PARAM_nom_bd = 'phpTest';//le nom de la base de données
    $PARAM_utilisateur = 'root';//nom d'utilisateur pour se connecter
    $PARAM_mot_passe = '';//mot de passe de l'utilisateur pour se connecter
    try
    {
            $connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
    	echo 'ça marche :)';
    }
     
    catch(Exception $e)
    {
            echo 'Erreur : '.$e->getMessage().'<br />';
            echo 'N° : '.$e->getCode();
    	die();
    }
    $resultats=$connexion->query("SELECT membre FROM test ORDER BY membre ASC;"); // on va chercher tous les membres de la table qu'on trie par ordre croissant
    print_r($connexion->errorInfo());
    $resultats->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet
    while( $ligne = $resultats->fetch() ) // on récupère la liste des membres
    {
            echo 'Utilisateur : '.$ligne->membre.'<br />'; // on affiche les membres
    }
    $resultats->closeCursor(); // on ferme le curseur des résultats
    ?>
    et voila le résultat

    Array ( [0] => 42S22 [1] => 1054 [2] => Unknown column 'membre' in 'field list' )
    Fatal error: Call to a member function setFetchMode() on a non-object in /opt/lampp/htdocs/tests/test.php on line 21
    En fait ce qui m'intrigue c'est cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'Utilisateur : '.$ligne->membre.'<br />'; // on affiche les membres
    Vu que j'ai récupéré ce code d'un tuto, alors je me suis dit que "membre" 'est peut etre un membre de la variable $ligne donc c'est prédéfini.
    Merci d'avance pour votre aide .

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    La gestion des erreurs n'est pas très bien écrite dans ce code.

    Ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
    $connexion->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
    Enlève ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r($connexion->errorInfo());
    Le message que tu nous remontes indique simplement qu'il n'y a pas de champ "membre" dans ta table "test".
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 102
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $connexion->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
    Quelle fonction remplit cette ligne?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    N'hésite pas a consulter la doc pour avoir tout le detail :
    http://php.net/manual/en/pdo.setattribute.php

    D'ailleurs c'est surement mieux comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $connexion->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Acceder à une base de données dans un serveur à distant
    Par abbd dans le forum Administration
    Réponses: 3
    Dernier message: 15/07/2008, 16h23
  2. [Débutant] Acceder aux bases de Données
    Par 19cmos83 dans le forum JDBC
    Réponses: 4
    Dernier message: 10/07/2007, 13h26
  3. [aide]créer er acceder à une base de donnée interbase
    Par diden138 dans le forum Bases de données
    Réponses: 4
    Dernier message: 11/01/2007, 13h46
  4. [VB] acceder une base des données sous vb
    Par monsar01 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/05/2006, 10h31
  5. Comment acceder à une base de donnée F1.db_ ?
    Par diado dans le forum Autres SGBD
    Réponses: 8
    Dernier message: 26/12/2003, 08h09

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