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 :

Cannot use object of type PDOStatement


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 92
    Par défaut Cannot use object of type PDOStatement
    Fatal error: Cannot use object of type PDOStatement on vueBillet.php on line 2

    Voici mon fichier vueBillet.php

    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
    <html lang="fr">
    <?php $titre = "Mon Blog - " .$billet['titre']; ?>
     
    <?php ob_start(); ?>
    <article>
        <header>
        <meta charset="UTF-8" />
        <link rel="stylesheet" href="contenu/style.css" />
        <title>Mon Blog</title>
            <h1 class="titreBillet"><?= $billet['titre'] ?></h1>
            <time><?= $billet['date'] ?></time>
        </header>
        <p><?= $billet['contenu'] ?></p>
    </article>
    <hr />
    <header>
        <h1 id="titreReponses">Réponses à <?= $billet['titre'] ?></h1>
    </header>
    <?php foreach ($commentaires as $commentaire): ?>
        <p><?= $commentaire['auteur'] ?> dit :</p>
        <p><?= $commentaire['contenu'] ?></p>
    <?php endforeach; ?>
    <?php $contenu = ob_get_clean(); ?>
    <?php require 'vueGlobale.php'; ?>
    </html>
    mon fichier vue globale :

    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
    <html lang="fr">
      <head>
        <meta charset="UTF-8" />
        <link rel="stylesheet" href="contenu/style.css" />
        <title>Mon Blog</title>
      </head>
      <body>
        <div id="global">
          <header>
            <a href="index.php"><h1 id="titreBlog">Mon Blog</h1></a>
            <p>Je vous souhaite la bienvenue sur ce modeste blog.</p>
          </header>
          <div id="contenu">
         	<?php echo $contenu;?>
             </div> <!-- #contenu -->
          <footer id="piedBlog">
            Blog réalisé avec PHP, HTML5 et CSS.
          </footer>
        </div> <!-- #global -->
      </body>
    </html>
    voici ma list des requêtes pour récupérer les billet et se connecter a la BDD :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php function getBDD(){
     $bdd = new PDO('mysql:host=localhost;dbname=monblog;charset=utf8',
      'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
     return ($bdd);
    }
    ?>
    <?php
     function getBillet($idBillet) {
        $sql = 'select BIL_ID as id, BIL_DATE as date,'
          . ' BIL_TITRE as titre, BIL_CONTENU as contenu from T_BILLET'
          . ' where BIL_ID='.$idBillet;
        $billet = $this->executerRequete($sql, array($idBillet));
        if ($billet->rowCount() == 1)
          return $billet->fetch();  
        else
          throw new Exception("Aucun billet ne correspond à l'identifiant '$idBillet'");
        }
    ?>
    <?php function getBillets () { 
    $bdd = getBDD();
            $billets = $bdd->query('select BIL_ID as id, BIL_DATE as date,'
              . ' BIL_TITRE as titre, BIL_CONTENU as contenu from T_BILLET'
              . ' order by BIL_ID desc');
    		   return($billets);
    }
           ?>
    	   <?php 
     
    function getCommentaires($idBillet) {
      $bdd = getBdd();
      $commentaires = $bdd->prepare('select COM_ID as id, COM_DATE as date,'
        . ' COM_AUTEUR as auteur, COM_CONTENU as contenu from T_COMMENTAIRE'
        . ' where BIL_ID='.$idBillet);
      $commentaires->execute(array($idBillet));
      return $commentaires;
    }
    ?>

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2016
    Messages : 42
    Par défaut
    Salut,

    D'où elle sort ta variable $billet ligne 2 de vueBillet.php ?

    ++

  3. #3
    Membre chevronné
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Septembre 2012
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2012
    Messages : 416
    Par défaut
    Bonjour,

    Même question qu'au dessus
    +
    D'où sort le $this->executerRequete(...) dans la fonction getBillet() ? Utilisation de $this hors contexte.

    Note : Dans le fichier des fonctions, pas besoin de fermer ?> et d'ouvrir <?php à chaque fonction un <?php au début du fichier suffira

Discussions similaires

  1. Cannot use object of type SoapFault as array
    Par sajodia dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 01/08/2012, 11h46
  2. [MySQL] Fatal error: Cannot use object of type PDOStatement as array
    Par picool dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 01/03/2012, 15h13
  3. Cannot use object of type __PHP_Incomplete
    Par pierrot10 dans le forum Langage
    Réponses: 4
    Dernier message: 26/09/2011, 11h14
  4. [ZF 1.10] Cannot use object of type stdClass as array
    Par cyrux dans le forum Zend Framework
    Réponses: 12
    Dernier message: 16/08/2010, 14h25
  5. [PHP 5.2] Fatal error: Cannot use object of type CPanier as array in . .
    Par Gauldo dans le forum Langage
    Réponses: 10
    Dernier message: 12/01/2009, 13h53

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