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: Uncaught Error: Call to a member function prepare() on null in


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Fatal error: Uncaught Error: Call to a member function prepare() on null in
    Bonjour je n'arrive pas à me connecter à ma BDD je ne comprend pas trop pourquoi voici mon code et l'endroit ou je l'appelle.

    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
     
    <?php
    // class ConnectionBase{
    //     protected $bdd;
     
    //     public function __construct(){
     
    //         $this->bdd = new PDO('mysql:host=localhost;dbname=pieces_leader;port=3308', 'root', '');
     
    //     }
     
    //     public function getBdd()
    //     {
    //         return $this ->bdd;
    //     }
    // } 
     
     
    /* Connexion à une base MySQL avec l'invocation de pilote */
     
     class ConnectionBase{
        protected $bdd;
     
        public function __construct()
        {
            $dsn = 'mysql:dbname=pieces_leader;host=localhost;port=3308';
            $user = 'root';
            $password = '';
     
            try
            {
                $bdd = new PDO($dsn, $user, $password);
                $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
     
            }      
            catch (PDOException $e)
            {
                echo 'Connexion échouée : ' . $e->getMessage();
            }
            finally
            {
                $bdd = null;
            }
        }
        public function getBdd()
        {
            return $this ->bdd;
        }
        }
     
    ?>
    et je l'appelle ICI

    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
     
    <?php 
     
    require_once '../App/Services/ConnectionBase.php';
    require_once '../App/Model/Product_Model.php';
     
     
     
    class ProductServices extends ConnectionBase
    {
        public function GetProduct(int $terme)
     
        {
     
           //recupere la connection venant de ConnectionBase
          $connect = parent::getBdd();
          //dump($connect);
          $sql="SELECT * FROM `prix`WHERE `Reference` LIKE :ref";
     
          $consult = $connect->prepare($sql); // Prépare la requête SQL en utilisant la BDD
     
          $terme = ($terme."%"); // Crée une variable terme qui étend le résultat aux autres concordance
          $consult -> bindValue(':ref' , $terme, PDO::PARAM_INT); // :ref devient $terme
          $consult -> execute(); // $consult reçois le résultat de la requête
          if($sql === false){
          echo "\nPDO::errorCode(): ", $connect->errorCode();
                }
    ?>

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 406
    Points : 4 843
    Points
    4 843
    Par défaut
    Bonjour,

    Aucune erreur n'est affichée ? as-tu essayé sans le port 3308 ?

    Puis n'oublis pas que tu es dans une class, donc l'initialisation de la propriété $bdd doit être effectuée avec le mot clé $this :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $this->bdd = new PDO($dsn, $user, $password);
    $this->bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

Discussions similaires

  1. [MySQL] Fatal error: Uncaught Error: Call to a member function prepare() on null..
    Par Elztx dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 24/09/2019, 10h21
  2. [PDO] erreur : Fatal error: Call to a member function prepare() on a non-object
    Par destigul dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/04/2015, 14h25
  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. Fatal error: Call to a member function on a non-object
    Par alemat13 dans le forum Langage
    Réponses: 6
    Dernier message: 31/12/2007, 17h22
  5. Fatal error: Call to a member function fetchAll()
    Par misterniark dans le forum Zend_Db
    Réponses: 2
    Dernier message: 15/06/2006, 17h29

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