Page 1 sur 1

Call to a member function query() on null

Posté : 01 oct. 2019, 22:55
par shGeoffrey
Bonjour à tous,

Je viens de coder une fonction qui me semble correcte et qui me renvois l'erreur suivante :
Fatal error: Uncaught Error: Call to a member function query() on null in /fonctions.php:5 Stack trace: #0 /fonctions.php(20): liste_journees_types(2, 'ID-jour-lundi') #1 {main} thrown in /homepages/5/d796103724/htdocs/fonctions.php on line 5

Code : Tout sélectionner

// La fonction require 'bdd.php'; function liste_journees_types($ID_semaine, $jour) { $journees_types = $pdo->query("SELECT * FROM `jour-type`"); $semaine_type = $pdo->query("SELECT * FROM `semaine-type` WHERE ID=".$ID_semaine.""); $liste_journees = ""; foreach ($journees_types as $row_journees_types) { $selection = ""; if ($row_journees_types['ID']==$semaine_type[$jour]) { // Si ID du jour type = ID du $jour dans la semaine type $selection = "selected"; } $liste_journees .= '<option value="'.$row_journees_types['ID'].'" '.$selection.'>'.$row_journees_types['nom'].'</option>'; } return $liste_journees ; } echo liste_journees_types(2, 'ID-jour-lundi'); // bdd.php (qui fonctionne sur d'autres scripts) $dsn = 'mysql:host=**************;dbname=**********;port=3306;charset=UTF8'; try { $pdo = new PDO($dsn, '**********' , '************'); } catch (PDOException $exception) { exit('Erreur de connexion à la base de données : '.$exception->getMessage()); }
J'ai cherché la cause sans succès.

Merci d'avance pour votre aide.

Re: Call to a member function query() on null

Posté : 01 oct. 2019, 23:29
par or 1
le message d'erreur veut dire que $pdo est null à cet endroit, d'où l'échec de l'appel de la fonction query.

Re: Call to a member function query() on null

Posté : 02 oct. 2019, 11:17
par @rthur
A priori un problème de portée de variable.
Voici une bonne explication ici :
https://www.php.net/manual/fr/language. ... .scope.php

Re: Call to a member function query() on null

Posté : 02 oct. 2019, 13:24
par shGeoffrey
Bonjour,

L'appel de query fonctionne sans faire appel à la fonction. Donc à priori c'est le "function liste_journees_types($ID_semaine, $jour)" qui pose problème ?

Re: Call to a member function query() on null

Posté : 02 oct. 2019, 13:30
par Saian
Le problème c'est que tu déclares $pdo en dehors de la fonction liste_journees_types et donc la variable n'existe pas dans la fonction. C'est un problème de portée de variable comme te le fait remarquer @rthur. Tu devrais peut être lire le lien qu'il t'a fourni.

Re: Call to a member function query() on null

Posté : 02 oct. 2019, 13:51
par shGeoffrey
Effectivement, la fonction ne va pas chercher le bdd.php s'il n'en fait pas parti. Je le saurais !

Merci pour votre aide !