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 :

Fatal error: Call to a member function perpare() on a non-object in [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 7
    Par défaut Fatal error: Call to a member function perpare() on a non-object in
    bonjour tout le mondeje suis débutant )
    merci bien de m'aider j'ai tape un petit bout de code que voila:
    index.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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <?php
    require "bd.php";
     
    $BD=new BD();
    $bd->query("SELECT * FROM produits");
     
     
    ?><html>
    <head>
     
    </head>
    <body>
      <div class ="head">
         </div>
         <div class="page"></div>
    </body>
    </html>
    _____________________________________________________
    bd.php:
    <?php
     
     
    class BD{
         private $hostname="****";
    	 private $username="****";
    	 private $password="";
    	 private $database="******";
    	 private $bd;
     
     
     
    	 public function __construct($hostname=null, $database=null, $password=null, $bd=null ){
     
            if($hostname != null){
     
    		$this->hostname = $hostname;
    		$this->username = $username;
    		$this->password = $password;
    		$this->database = $database;
     
    		}
    		     try{
    		       $bd=new PDO('mysql:host='.$this->hostname.';$datebase='.$this->bd,$this->username,$this->password,
    			   array(
    			         PDO::MYSQL_ATTR_INIT_COMMAND,
    					 PDO::ATTR_ERRMODE =>PDO::ERRMODE_WARNING
    					 ));
    		        }catch(PDOException $e){
    		                                 die("<h1> impossible de ce connecter à la base de données </h1>");
     
    		        }
       }
         public function query($sql){
    	         $req=$this->bd->prepare($sql);
    			 $req=execute();
    			 return $req->fetchAll(PDO::FETCH_OBJ);
     
                 }
    }
    ?>
    mais ça m'affiche l'erreur
    Fatal error: Call to a member function perpare() on a non-object in;
    merci bien d'aider

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 252
    Par défaut
    tu crée ta variable $BD (en majuscule) et tu l'appelle en minuscule, forcément ca ne marchera pas.

    essaye déja :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $bd=new BD();
    $bd->query("SELECT * FROM produits");

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 252
    Par défaut
    Il y'a d'autres erreurs,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $bd = new PDO('mysql:host=' . $this->hostname . ';$datebase=' . $this->bd, $this->username, $this->password,
                                array(
                                    PDO::MYSQL_ATTR_INIT_COMMAND,
                                    PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
                        ));
                //ajouter cette ligne
                $this->bd=$bd;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public function query($sql) {
            $req = $this->bd->prepare($sql);
            //$req = execute();
            //modifier
            $req->execute();
            return $req->fetchAll(PDO::FETCH_OBJ);
        }

  4. #4
    Membre régulier
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 7
    Par défaut plus d'erreur fatal maintenant c'est un Warning
    Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[3D000]: Invalid catalog name: 1046 Aucune base n'a été sélectionnée in

  5. #5
    Membre régulier
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 7
    Par défaut
    Citation Envoyé par numew Voir le message
    tu crée ta variable $BD (en majuscule) et tu l'appelle en minuscule, forcément ca ne marchera pas.

    essaye déja :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $bd=new BD();
    $bd->query("SELECT * FROM produits");
    j'ai corriger cette erreur merci bien

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 252
    Par défaut
    il suffit de lire l'erreur pour comprendre, la configuration pour la base de données n'est pas correcte vérifie ce que tu as mis à la place des "****"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private $hostname="****";
    private $username="****";
    private $password="";
    private $database="******";

  7. #7
    Membre régulier
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 7
    Par défaut effectivement
    j'ai lu l'erreur j'ai vérifier mais tout et exacte
    j'ai mis le nom de la base de données et tout les autre paramétrés

  8. #8
    Membre régulier
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 7
    Par défaut OK merci bien numew j'ai trouver
    c 'est au niveau de
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $bd = new PDO('mysql:host=' . $this->hostname . ';$datebase='. $this->bd, $this->username, $this->password,
        array(
            PDO::MYSQL_ATTR_INIT_COMMAND,
            PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
        ));
    //ajouter cette ligne
    $this->bd=$bd;
    j'ai mis $database alors que je devais mettre " database "
    merci bien pour votre aider

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

Discussions similaires

  1. [PDO] Fatal error: Call to a member function fetch() on a non-object
    Par blopjerem dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/12/2009, 10h53
  2. Réponses: 4
    Dernier message: 07/10/2009, 11h53
  3. Réponses: 4
    Dernier message: 02/10/2009, 10h12
  4. [PDO] Fatal error: Call to a member function setFetchMode() on a non-object in
    Par tores20 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/07/2009, 23h04
  5. [PHP 5.2] Fatal error: Call to a member function bindValue() on a non-object
    Par TeraD dans le forum Langage
    Réponses: 4
    Dernier message: 23/06/2009, 00h20

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