Bonjour
Je revient à la charge, toujours dans l'apprentissage du POO. décidémment..
Je reçoit cette erreur en essayant de regrouper 2 fonctions touchant mysql dans une classe.
J'ai donc index.php, avec
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<?php include("functions.php"); ?>
functions.php dont les premières lignes sont:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 class bdd { private $host="xxx"; private $user="xxx"; private $base="xxx"; private $pwd="xxx"; public function connect() { if(!empty($this->host) && !empty($this->user) && !empty($this->base) && !empty($this->pwd)) { $db=@mysql_connect($this->host, $this->user, $this->pwd) or die("<span class='error'>Erreur de connexion à la base</span>"); @mysql_select_db($this->base,$db) or die("<span class='error'>Erreur de sélection de base</span>"); mysql_set_charset('utf8'); } } public function execute($req) { $sql = @mysql_query($req) or die("<span class='error'>Erreur d'éxécution !</span><br>[".$req."]<br><u>Réponse:</u>".mysql_error()); return $sql; } } $bdd = new bdd(); $bdd->connect();
Et j'obtiens l'erreur
Voici la fonction en cause dans functions.php ligne 172:Fatal error: Call to a member function execute() on a non-object in /public_html/configs/functions.php on line 172
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function isHeAdmin($pse) { $checkRankSql = "SELECT * FROM comptes WHERE login_user='".$pse."'"; $checkRank = $bdd->execute($checkRankSql); $cr=mysql_fetch_assoc($checkRank); if($cr['rank_user']==1) { return true; } else { return false; } }
Pourtant, l'objet est bien déclarée au début de ce même fichier, à la suite de la classe, et la fonction membre execute() est bien public.. Désolé de vous embeter encore :/
Et si au passage, vous trouvez quelque chose à redire sur tout ça n'hésitez pas mon but est d'apprendre.
Merci
Partager