Fatal error: Call to a member function query() on null

Par JMERISE, il y a 9 ans


Base de données MySQL

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

coolbreeze, il y a 9 ans

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, il y a 9 ans

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.

Pierrot01, il y a 9 ans

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, il y a 9 ans

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

Pierrot01, il y a 9 ans

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, il y a 9 ans

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 :)