Problème class PHP

Résolu
shauken Messages postés 6 Date d'inscription samedi 11 février 2006 Statut Membre Dernière intervention 13 mars 2012 - 18 sept. 2011 à 23:02
shauken Messages postés 6 Date d'inscription samedi 11 février 2006 Statut Membre Dernière intervention 13 mars 2012 - 19 sept. 2011 à 13:27
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

syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
19 sept. 2011 à 13:05
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.
3
shauken Messages postés 6 Date d'inscription samedi 11 février 2006 Statut Membre Dernière intervention 13 mars 2012
19 sept. 2011 à 13:27
Et oui, merci syndrael.

Le probleme vient bien des majuscules.
0
Rejoignez-nous