Problème class PHP [Résolu]

Signaler
Messages postés
6
Date d'inscription
samedi 11 février 2006
Statut
Membre
Dernière intervention
13 mars 2012
-
shauken
Messages postés
6
Date d'inscription
samedi 11 février 2006
Statut
Membre
Dernière intervention
13 mars 2012
-
Bonjour,

je commence un site orienté Objet mais quelque notion que manque:

voila mon problème:

j'ai 2 classe et ma page index:
- "MyBase" qui fait le lien entre ma base de données et mon site

<?php

class MyBase {
    private $ip;
    private $login;
    private $pass;
    private $database;
    private $id_connection;
    private $erreur;

    public function __construct($ip,$login,$pass,$database)
    {
        $this->ip=$ip;
        $this->login=$login;
        $this->pass=$pass;
        $this->database=$database;
        $this->id_connection=NULL;
        $this->erreur="Aucune Erreur";		
    }

    public function connection()
    {
        $this->id_connection=mysql_connect($this->ip,$this->login,$this->pass);
        if(!$this->id_connection)
                $this->erreur="Impossible d'établir la connexion";
        else
        {
                if(!mysql_select_db($this->database))
                        $this->erreur="Impossible de trouver la database.)";
        }
    }

    public function deconnection()
    {
        if(!mysql_close($this->id_connection))
                $this->erreur="Erreur de deconnexion";
    }

    public function geterreur()
    {
        return $this->erreur;
    }

    public function query($requete)
    {
        $i=0;
        $tab=array();
        $retour=mysql_query($requete);
        if(!$retour)
        {
            $this->erreur="Impossible d'executer la requète.";
            return false;
        }
        else
        {
            while($ligne=mysql_fetch_array($retour))
            {
                    $tab[$i]=$ligne;
                    $i++;
            }
            return $tab;			
        }				
    }
    
    public function execute($requete)
    {
        $retour=mysql_query($requete);        
        if(!$retour)
        {
            $this->erreur="Impossible d'executer la requète.";
            return FALSE;
        }
        else
            return true;
    }
}

?>


- "Config_general" une classe composé de fonction pour modifier les parametre du site.

<?php

include_once("em-class/MyBase.class.php");
include_once("em-class/Parametre.php");
class Config_general 
{

    private $MaBase;
    
    function __construct()
    {
        $this->Mabase = new MyBase(ip,login,pass,database);
        $this->Mabase->connection();
    }  
    public function getTitle()
    {
        $test = $this->MaBase->query("Select * FROM " + path + "options WHERE op_name='Title'");
    }
    
    public function setTitle($Title)
    {
        $test = $this->MaBase->execute("UPDATE " + path + "options SET op_value='" + $Title + "' WHERE op_name='Title'");
    }
}
?>


- Ma page Index
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    
        <?php
            include("em-class/em-admin/Config_general.php");
            $test = new config_general();            
            $test->setTitle("Toto");
            $test->getTitle();
        ?>
    
</html>



A l'exection j'ai l'erreur:

Fatal error: Call to a member function execute() on a non-object in C:\Users\vvasseur\Documents\Dev Web\EasyManga\em-class\em-admin\Config_general.php on line 22

Pouvez vous m'expliquer d'ou vient le problème.

Merci pour vos réponse.

2 réponses

Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
12
Perso, j'évite les noms de classe avec des majuscules.. ou alors en CamelCase..
Tu peux vérifier si tu n'as pas un souci de case-sensitive entre ton 'new' et ta classe ??
S.
Messages postés
6
Date d'inscription
samedi 11 février 2006
Statut
Membre
Dernière intervention
13 mars 2012

Et oui, merci syndrael.

Le probleme vient bien des majuscules.