Bonsoir,

Sa fait plusieur mois que je n'avais pas dev est je commence a reprendre, je suis rester bloquer sur une fonction qui doit me retourner les info d'une table mais il m'affiche l'erreur : Fatal error: Call to a member function query() on null
J'ai fait déja plusieur solution sur le net avent de venir le poster ici, donc si une personne pouvais me guider pour résoudre mon problème ce serais un grand merci :)

    /**
     * @param $id
     * @param $url
     * @return mixed
     */
    public function Product_url($id, $url){
        global $pdo;
        var_dump($id) // contient 1
        var_dump($url) // contient Pain-rond-125455
        return $pdo->query("SELECT * FROM articles WHERE id = $id AND article_url = '".$url."'");
        //return $select_urlProduct;
    }

le code fonctionne bien mais je suis bloqué sur la requette sql qui m'affiche une erreur.

Merci d'avance,

6 réponses


Pierrot01
Réponse acceptée

c'est tout simplement parce que le $pdo n'est pas initialisé.

public function Product_url($id, $url){
        global $pdo;

        var_dump($id) // contient 1
        var_dump($url) // contient Pain-rond-125455
        require_once 'le_fichier_php_qui_connect_a_la_base_de_donnees.php';
        return $pdo->query("SELECT * FROM articles WHERE id = $id AND article_url = '".$url."'");
        //return $select_urlProduct;
    }

comme ça, ça devrai fonctionner.
inclure ce fichier avant est la meilleurs des solutions quand même ;)
@plus
Pierre

JMERISE
Auteur
Réponse acceptée

Salut,
je viens de me rendre compte que je me suis trompé sur l'appelle de mon autoloader c'est pour cella que mon code ne marcher pas.
Au lieu de faire :

$pdo = $pdo->getPDO();

Ben j'avais écris

$pdo = getPDO();

Vraiment désoler pour le dérangement mais Merci de m'avoir aider pour résoudre mon problème :)

Salut, je pense que de manière simple tu devrais essayer ceci:
$query = $pdo->prepare("SELECT * FROM articles WHERE id = '".$id."' AND article_url = '".$url."' ");
$query->execute();
$result = $query->fetch();
if($result > 0) {
$data = $result['nom_de_la_table'];
} else {
$data = "erreur";
}
return $data;

JMERISE
Auteur

Salut merci d'avoir pris le temps de me réponde mais ta solution n'a pas marcher.
C'est assez bisard que cella ne marche pas, poutant mon code marche trés bien sur d'autre fonction.

salut
es tu sûr que $pdo est bien initialisé ?
essayes avant de lancer la requete de faire un var_dump($pdo)
@plus
Pierre

JMERISE
Auteur

salut lorsque je fait un var_dump($pdo); sur une autre founction il me retourne object(PDO)[2] et quand je fait le var_dump de $pdo sur cette fonction il me retourne null