Mystère avec PDO...

Résolu/Fermé
ephelya Messages postés 282 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 - 19 avril 2013 à 15:19
ephelya Messages postés 282 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 - 19 avril 2013 à 16:22
Bonjour,

J'essaie de faire une requête simple pour générer les pages de mon site:
		$db = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME, DB_USER, DB_PASSWORD);
			
		$idsite= (int) $idsite; 
		$donnees = array();
		$q = $db -> query("SELECT * FROM bigb_site_pages WHERE bigb_site_pages.module='".$module."' AND bigb_site_pages.idsite = ".$idsite);
		$donnees = $q->fetch(PDO::FETCH_ASSOC);

		$page = new Pagesite($donnees);	
		$page -> display();


un print_r($donnees) m'affiche:
Array ( [id] => 6 [titre] => [idsite] => 62 [module] => index [description] => )

mais ça me retourne l'erreur suivante:

Catchable fatal error: Argument 1 passed to Contents::__construct() must be an array, boolean given, called in /web/codressing/www/BIGBOFF/CLASS/Contents.class.php on line 40 and defined in /www/CLASS/Contents.class.php on line 27

Quelqu'un a une idée?? Je suis démunie, là... :'(

2 réponses

jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
19 avril 2013 à 15:25
Salut !

D'abord, essaye d'utiliser les bindValue de l'objet PDO pour insérer des variables dans ta requete ! C'est plus propre et beaucoup plus sécurisé !

Sinon l'erreur te dis qu'il veut un array() mais tu lui donnes un boolean. Ce qui me parrait bizarre enfaite car le print_r de $donnee montre bien que c'est un tableau ...
Vérifie le constructeur de ta class Pagesite.
Et as tu inclus ta class Pagesite ?
0
Utilisateur anonyme
19 avril 2013 à 16:16
Note que l'erreur ne porte pas sur la classe Pagesite, mais sur la classe Contents.
Visiblement, le constructeur de Pagesite crée un objet de classe Contents, mais ne lui passe pas le bon paramètre
0
ephelya Messages postés 282 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 2
19 avril 2013 à 16:22
Merci pour vos réponses.
En fait, c'est rentré dans l'ordre sans que je comprenne très bien comment, je n'ai pas touché aux classes donc je ne comprendrai jamais pourquoi ça ma réclamait un tableau, alors que c'était un tableau, le mystère reste entier.... :-)
J'avais bien commencé par faire une requête avec les bindValue, mais comme je connais mal la classe PDO, je ne comprenais pas les messages d'erreur. Je tâcherai de la refaire proprement quand j'aurai avancé sur le reste! :-)
Merci encore !
0