[RESOLU] Call to a member function query() on null

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Call to a member function query() on null

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

par shGeoffrey » 02 oct. 2019, 13:51

Effectivement, la fonction ne va pas chercher le bdd.php s'il n'en fait pas parti. Je le saurais !

Merci pour votre aide !

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

par Saian » 02 oct. 2019, 13:30

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

par shGeoffrey » 02 oct. 2019, 13:24

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

par @rthur » 02 oct. 2019, 11:17

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

par or 1 » 01 oct. 2019, 23:29

le message d'erreur veut dire que $pdo est null à cet endroit, d'où l'échec de l'appel de la fonction query.

Call to a member function query() on null

par shGeoffrey » 01 oct. 2019, 22:55

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.