Fatal error: Call to a member function query() on null

fidsurafidson Messages postés 2 Statut Membre -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, j'ai créée un site en php POO et j'ai eu cet erreur:

Fatal error: Call to a member function query() on null in C:\UwAmp\www\resto\resto\NavigateurDAO.php on line 31

et voici mon code

require_once('connexion.php');
require('Navigateur.php');

class NavigateurDAO {
    //put your code here
    private $connex;
    
    function _construct(){
        $database = new connexion();
        $db = $database->dbConnection();
        $this->connex = $db;
    }
    
     public function getNavigateur() {
        try {
            $navigateur = array();
            $result = $this->connex->query("select * from navigateur");
            while ($donnees = $result->fetch()) {
                $navigateur[] = new Navigateur($donnees);
            }
            return $navigateur;
        } 
        catch (Exception $e) {
        }
    }   
}
?>


EDIT : Ajout du LANGAGE dans les balises de code (pour avoir la couleur...)

merci de votre aide

1 réponse

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Je suppose que connexion est une class contenant la connexion à ta bdd ?

    Dans ce cas.. fais donc un EXTEND

    class NavigateurDAO extends connexion{
        //put your code here
        private $connex;
        
        function _construct(){
            parent::__construct();
            $db = parent::dbConnection();
    		if($db){
              $this->connex = $db;
    		}else{
    			echo "La variable connex est vide ou inexistante ! Verifiez la connexion à la bdd !";
    			exit();
    		}
        }
        
    	 /**
    	 * retourne la liste des navigateurs.
    	 */
         public function getNavigateur() {
            try {
                $navigateur = array();
                  $result = $this->connex->query("select * from navigateur");
                  while ($donnees = $result->fetch()) {
                     $navigateur[] = new Navigateur($donnees);
                  }
                 return $navigateur;
    			
            } catch (Exception $e) {
    			echo 'error ! '.$e->getMessage();
            }
        }   
    }
    


    Au passage .. si ce n'est pas déjà fait ... active la gestion des erreurs PDO dans ta connexion.
    https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

    .
    0
    1. fidsurafidson Messages postés 2 Statut Membre
       
      Merci de votre réponse mais rien ne change! la gestion des erreurs PDO est déja faite. d'autres solutions?
      0
      1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > fidsurafidson Messages postés 2 Statut Membre
         
        Et suite aux modifs que je t'ai proposé... tu as toujours le même message d'erreur ???
        0