Bonjour tout le monde,
j'ai un problème de débutant, et vous pourrez sûrement m'aider.
C'est un test. J'ai une méthode
1 2 3 4 5 6 7 8 9 10
|
public function add(Personnages $perso)
{
$q = $this->_db->prepare("INSERT INTO personnages (nom, degats, force) VALUES(:nom, :degats, :force)");
$q->execute(array(
'nom'=>$perso->nom(),
'degats'=>$perso->degats(),
'force'=>$perso->force()
)); |
Puis
1 2 3 4 5 6 7 8 9
|
$manager=new PersonnagesManager($db);
$perso=new Personnages(array(
'nom'=>'Le perso',
'force'=>80
));
echo 'Le personnage '.$perso->nom().' a '.$perso->force().' en force';
$manager->add($perso); |
Ma table se compose de 4 champs "id" "nom" "degats" et "force".
L'objet est bien hydraté, la fonction echo renvoie bien la valeur des attributs, aucun souci, mais la fonction add() ne fonctionne pas correctement.
Le seul moyen de la faire fonctionner, c'est sous cette forme:
$q = $this->_db->prepare("INSERT INTO personnages VALUES('', :nom, :degats, :force)");
Dans ce cas, ça marche, mais étant donné que c'est un test que je fais pour apprendre/progresser, j'aimerais surtout comprendre pourquoi l'autre forme (en haut de page) ne fonctionne pas, pourtant elle me paraît juste.
Partager