Fatal error: Call to a member function query() on null [Fermé]

Signaler
Messages postés
2
Date d'inscription
lundi 2 octobre 2017
Statut
Membre
Dernière intervention
2 octobre 2017
-
Messages postés
31090
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021
-
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
A voir également:

1 réponse

Messages postés
31090
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021
3 194
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://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

.
Messages postés
2
Date d'inscription
lundi 2 octobre 2017
Statut
Membre
Dernière intervention
2 octobre 2017

Merci de votre réponse mais rien ne change! la gestion des erreurs PDO est déja faite. d'autres solutions?
Messages postés
31090
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021
3 194 >
Messages postés
2
Date d'inscription
lundi 2 octobre 2017
Statut
Membre
Dernière intervention
2 octobre 2017

Et suite aux modifs que je t'ai proposé... tu as toujours le même message d'erreur ???