"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)