Call to a member function on a non object..
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:
1 2
|
<?php include("functions.php"); ?> |
functions.php dont les premières lignes sont:
Code:
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
Citation:
Fatal error: Call to a member function execute() on a non-object in /public_html/configs/functions.php on line 172
Voici la fonction en cause dans functions.php ligne 172:
Code:
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