J'ai une méthode appelée getPerso qui retourne un tableau avec toutes les informations de mon membre. Voici la méthode:Ma méthode ne fonctionne pas et ne retourne pas un tableau
public function getPerso($id)
{
if(is_int($id))
{
$req = $this->_db->prepare('SELECT * FROM personnages WHERE id = :id');
$req->execute(array(
'id' => $id));
$donnee = $req->fetch();
$req->closeCursor();
return $donnee;
}
}
Il suffit d'un paramètre int. J'utilise $_SESSION['id']
qui contient l'identifiant du membre connecté pour le paramètre. Mais, lorsque j'exécute ce code:
$donnee = $manager->getPerso($_SESSION['id']);
var_dump($donnee, $_SESSION['id']);
Ma variable $ donnee est vide. Voici ce que je reçois de la var_dump:
chaîne NULL (1) « 4 »
Ma variable $ donataire est censé contenir un tableau avec toutes les informations du membre. J'espère que quelqu'un a une solution.
Soit il n'y a pas de ligne correspondante pour ': id', soit vous ne voyez pas d'erreur. Par défaut, les erreurs PDO sont silencieuses. Avez-vous configuré la connexion pour lancer des exceptions? '$ this -> _ db-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);' assurera qu'il lancera une exception si le 'prepare()' échoue. Sinon, il se peut que vous n'ayez pas de ligne correspondante. –
vous supposez simplement que votre requête a réussi. sauf si vous activez explicitement des exceptions, PDO renvoie boolean false en cas d'échec. Donc, soit votre -> préparation a échoué, le -> execute() a échoué, ou -> fetch() a échoué. –
'$ req-> execute (array (': id' => $ id));' –