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 :

'Call to a member function prepare() on a non-object '


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut 'Call to a member function prepare() on a non-object '
    Bonjour, j'ai un souci 'Call to a member function prepare() on a non-object 'et je vois pas comment le corriger help svp je vous met les codes ci-dessous:
    La page de la class Database:
    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
    class Database
    	{
    		private $dbh;
     
    		public function __contruct($login, $database_name , $password, $host = 'localhost')
    		{
    			$this->dbh = new PDO("mysql:host=$host;dbname=$database_name", $login, $password);
    		    $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    		    $this->dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
    		    $this->dbh->query("SET CHARACTER SET utf8");
     
    		}
     
    		public function query($sql, $params)
    		{
    			$stmt = $this->dbh->prepare($sql); // il me dit une erreur ici...
    			$stmt->execute($params);
    			return $stmt;
    		}
    	}


    la page qui affichera le résultat de la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $db = new Database('root', 'forum', '');
    $row = $db->query('SELECT * FROM membre WHERE id = ?', [6])->fetch();

  2. #2
    Membre averti Avatar de diallomad
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 164
    Points : 364
    Points
    364
    Par défaut
    Salut, vaut mieux gérer les exception lors de l’établissement de la connexion à la base de données.
    Récupère l'erreur pour savoir ce qui ne va pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    try
    {
            $this->dbh = new PDO("mysql:host=$host;dbname=$database_name", $login, $password);
    	$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	$this->dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
    	$this->dbh->query("SET CHARACTER SET utf8");
    }
    catch(PDOException $e)
    {
         // Affiche ou retourne l'erreur
    }
    Le chemin de la réussite n'a jamais été une courbe stable tant qu'on respire dans les mêmes fautes sans fin.
    Thomas Sankara

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 239
    Points : 15 539
    Points
    15 539
    Par défaut
    affichez le contenu des variables pour vérifier qu'elles contiennent bien ce que vous souhaitez

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/02/2014, 23h49
  2. Réponses: 16
    Dernier message: 23/05/2013, 10h35
  3. [PDO] Fatal error: Call to a member function prepare() on a non-object
    Par nu_tango dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/12/2012, 08h33
  4. Call to a member function prepare() on a non-object
    Par KenConnor dans le forum Langage
    Réponses: 8
    Dernier message: 20/01/2011, 22h11
  5. [PDO] Call to a member function prepare() on a non-object
    Par Invité dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 15/07/2009, 14h39

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