Bonjour à tous,

Je me suis mit depuis peu à utilisé l'objet PDO et la programmation objet (enfin j’essaie ^^).
Mais je suis actuellement bloquer, mon problème :

J'ai créer une classe qui utilise l'objet PDO, pour inséré des informations en base de donnée, mais j'ai 2 erreurs :

Notice: Undefined variable: db in C:\[mon-chemin]\class\posts.class.php on line 7
Fatal error: Call to a member function query() on a non-object in C:\[mon-chemin]\cclass\posts.class.php on line 7

Ma class :

<?php
class Posts {
    public $id;
    function read($fields){
        $req = $db->query("SELECT $fields FROM pages");
        $d = $req->fetch(PDO::FETCH_OBJ);
        return $d;
    }
}
?>

Index.php :

<?php
    require_once('inc.config.php'); // Objet PDO
    require_once("class/posts.class.php"); // ma class
    ...]

Je n'arrive pas à savoir comment résoudre ce problème, si quelqu'un peu m'aider.

D'avance merci.

Cordialement.

4 réponses


Grafikart
Réponse acceptée

Dans une fonction tu es dans un "espace fermé" donc c'est comme si aucune variable n'existe pour lui dans read();
Je suppose que tu as créer une varaible db dans config. Si oui 2 solution :

  • dans read tu met global $db; avant d'utiliser la variable
  • tu fais passer db à la class

Merci de votre réponse aussi rapide,

Pour la deuxième solution, comment on fait pour passer db à la class.
Je fait sa ce soir des que je rentre, merci.

Cordialement.

En utilisant un constructeur pour faire passer un paramètre à l'initialisation

Merci pour cette réponse GrafikArt,
je vais pouvoir avancer un peut sur le projet maintenant.

Cordialement.