"Call to a member function or a non-object" [MySQLi et Classe] - PHP - Programmation
Marsh Posté le 06-04-2006 à 08:02:41
Ta classe $MySQLi n'est pas connue de ta classe Forum
3 choix
-Créer un objet mysqli dans ta class forum lors du constructeur
[$this->con_sql = new mysqli(..)
-Dans tes méthodes appeler une méthode qui te retourne le pointeur MySQLi
-Passer le $MySQLi existant en variable globale [mais ca s'est tres sale]
Marsh Posté le 23-10-2008 à 17:01:00
Bonjour,
Moi aussi j'ai le même problème ("Fatal error: Call to a member function query() on a non-object in [...]" ), mais j'ai bien mis la classe mysqli dans ma classe ;-(
Je pense que c'est une histoire de droit ou de mauvais héritage des fonctions ? Une idées ?
<?php
class classeBdd {
private $serveurSQL;
private $userSQL;
private $passSQL;
private $baseSQL;
private $mysqli;
private $requete;
private $result;
function classeBdd($host, $user, $pass, $base) {
$this->serveurSQL = $host;
$this->userSQL = $user;
$this->passSQL = $pass;
$this->baseSQL = $base;
$this->mysqli = NULL;
}
public function connect($db) {
if( $db != NULL ) {
$this->mysqli = new mysqli($this->serveurSQL, $this->userSQL, $this->passSQL, $this->baseSQL);
if ( !$this->mysqli ) {$this->erreur('Connexion impossible à la base de données. Appuyez sur la touche F5 de votre clavier.');}
}
}
public function requete($requete, $i) {
$this->requete = $this->mysqli->query($requete);
if( !$this->requete ) {$this->erreur('Impossible d\'effectuer la requête.');}
}
public function fetchAssoc($i) {
$temp = $this->mysqli->fetch_assoc();
return $temp;
}
public function getNbLignes($i) {
$temp = $this->mysqli->num_rows();
return $temp;
}
public function getNbModifs() {
$temp = $this->mysqli->affected_rows();
return $temp;
}
public function deconnect() {
$this->mysqli->close();
}
public function erreur($erreur) {
echo '<div align="center"><table border="1" cellpadding="0" cellspacing="0" width="300" height="100" bordercolor="#CC0000">
<tr><td valign="middle" bgcolor="#FAFAFA"><p align="center"><strong><font face="Verdana" size="2"><u><font color="#CC0000">Erreur : '.$erreur.'</font></u> </font></strong></td>
</tr></table></div>';
}
}
?>
Merci d'avance.
Cordialement
Nicolas
Marsh Posté le 24-10-2008 à 09:34:18
Je viens de tester ton truc à part des trucs foireux ca marche
Code :
|
j'ai pas ton msg d'erreur la
Marsh Posté le 27-10-2008 à 18:28:06
Bonsoir,
Merci pour ta réponse.
J'ai opté pour la manière simple : j'ai utilisé dans ma classe les fonction mysqli_* à la place le la classe mysqli ;-)
Cordialement
Sebastien a écrit : Je viens de tester ton truc à part des trucs foireux ca marche
|
Marsh Posté le 05-04-2006 à 19:11:34
Bonjour
Je débute en POO avec PHP5 et Mysqli
Comment faire pour utiliser l'objet mysqli dans une autre classe ?
PHP m'affiche en effet le message d'erreur suivant:
Fatal error: Call to a member function query() on a non-object in C:\wamp\www\[...]\includes\forum.class.php on line 9
Mon code:
...
Et dans un autre fichier:
La ligne 9 est celle où on retrouve l'appel à $MySQLi->query
Merci de vos futures réponses
Message édité par MS-DOS_1991 le 05-04-2006 à 19:12:33
---------------
Viendez sur le Newbie-Project et essayez le Newbie-Directory (nouveau)