IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Requêtes procédurales en requêtes avec l'objet


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 2
    Points
    2
    Par défaut Requêtes procédurales en requêtes avec l'objet
    Bonjour,

    J'ai actuellement un système procédural avec mes fonctions à la racine (fonctions.php). Je veux désormais passer en POO.
    Je dois vous prévenir que j'ai enregistré en base de données des données de configuration (url, nom site, webmaster...ect).

    Voici le code de ma page index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //Chargement des classes poo
    require ('./lib/base.php');
     
    //Connexion à la bdd, ancienne methode procedurale
    //$base = mysql_connect ($parametre['hote'],$parametre['login'],$parametre['pass']);
    //if(!mysql_select_db($parametre['bdd'], $base)) $erreur.= 'Connexion impossible à la BDD';
     
    //Toutes les fonctions susceptibles d'être appelées
    require ('./fonctions.php');
     
    //On défini tous les paramètres de configuration stockés en BDD
    //$bdd = new acces();
    //$bdd->connexion();
    $bdd = new acces();
    $bdd->connexion();
    $bdd->defineconfig();
    Puis le code de ma page lib/base.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    class acces
    {
            private $user; // login de la BDD
    	private $mdp; // mot de passe de connexion à la BDD
    	private $url; // adresse de connexion
    	private $etat; // objet permettant les opérations sur la BDD, de la classe PDO
     
    	public function __construct()
    	{
    		$this->user = '******'; 
    		$this->mdp = '******';
    		$this->url = 'mysql:host=localhost;dbname=*****';
    	}
    	/*Lance la connexion à la base de données et retourne l'objet
    	permettant d'effectuer des opérations sur la BD */
    	public function connexion()
    	{
    		try 
    		{
                $this->etat = new PDO($this->url,$this->user,$this->mdp,array(PDO::ATTR_PERSISTENT => false));
    			return $this->etat;
    		}
    		catch (Exception $e)
    		{
    			die("Erreur ! : " . $e->getMessage());
    		}
    	}
    	/** Ferme la connexion */
    	public function deconnexion()
    	{
    		$this->etat = NULL;
    	}
        public function query($query)
        {
    		return $this->etat->query($query);
    	}
     
    	public function prepare($prepare)
    	{
    		return $this->etat->prepare($prepare);
    	}
     
    	public function exec($exec)
    	{
    		return $this->etat->exec($exec);
    	}
     
    }
    class config extends access
    {
        public function defineconfig()
    	{
    		$sql = 'SELECT * FROM config';
    		$requete = acces::connexion()->etat->query($sql);
    		$data = $requete->fetch();
    		define ($data['parametre'], $data['valeur']);
    	}   
    }
    Donc je vous expose mon problème: je n'arrive pas à sélectionner les configurations enregistrées dans la table config (page blanche).

    Merci d'avance pour vos réponses.
    Cordialement

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu devrais avoir quoi au lieu d'une page blanche ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Une page avec un header, un slider, du contenu et un footer et tout plein d'autres choses.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je demandais parce qu'il n'y a rien dans ce que tu nous montres ...
    Bref donc je suppose que si tu retires les 3 lignes de la classe dans index.php, l'affichage revient ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Je ne montre pas les autres parties de l'index car elles marchent très bien en procédurale.
    Si je retire les trois lignes et le require de la classe le site s'affiche. J'ai du fais une erreur dans mes classes ou lors de l'appel des classes...
    Je ne trouve pas la solution

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Assure toi déjà de bien afficher toutes les erreurs PHP et active les erreurs PDO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->etat->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Comme ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function connexion()
    	{
    		try 
    		{
                $this->etat = new PDO($this->url,$this->user,$this->mdp,array(PDO::ATTR_PERSISTENT => false));
                $this->etat->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    		}

Discussions similaires

  1. Bonne pratique : mapper le résultat d'une requête avec un objet
    Par ThistleDub dans le forum Windows Forms
    Réponses: 9
    Dernier message: 17/05/2011, 13h52
  2. Requète sur BDD avec l'objet PDO
    Par zenico64 dans le forum Langage
    Réponses: 21
    Dernier message: 09/11/2010, 11h47
  3. Requête absente pour fusion avec Word
    Par stéphane_ais2 dans le forum Access
    Réponses: 5
    Dernier message: 05/12/2006, 15h08
  4. Modifier requête avec l'objet DAO
    Par vuong1 dans le forum VBA Access
    Réponses: 7
    Dernier message: 07/08/2006, 21h25
  5. Requêtes : recherche de maxi sur plusieur Objet
    Par pertuis dans le forum Langage SQL
    Réponses: 6
    Dernier message: 08/03/2004, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo