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

Fermé
fidsurafidson Messages postés 2 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 2 octobre 2017 - Modifié le 2 oct. 2017 à 13:35
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 2 oct. 2017 à 15:05
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

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
2 oct. 2017 à 13:41
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
fidsurafidson Messages postés 2 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 2 octobre 2017
2 oct. 2017 à 13:48
Merci de votre réponse mais rien ne change! la gestion des erreurs PDO est déja faite. d'autres solutions?
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > fidsurafidson Messages postés 2 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 2 octobre 2017
2 oct. 2017 à 15:05
Et suite aux modifs que je t'ai proposé... tu as toujours le même message d'erreur ???
0