Problème PHP POO (insertion)

Résolu
Bonjour, j'ai un problème, je n'arrive pas trouve ou viens de l'erreur.
voici mon code:

index.php

function loadClass($classe){
require 'classes/'.$classe.'.class.php';
}

spl_autoload_register('loadClass');

$perso = new Personnage(array(
'nom' => 'Victor'
));

$db = new PDO('mysql:host=localhost; dbname=test1', 'root', '');
$manager = new PersonnagesManager($db);

$manager->add($perso);

______________________________________________

personnage.class.php

class Personnage
{
private $_id;
private $_nom;

public function hydrate(array $donnees){
foreach($donnees as $key => $value){
$method = 'set'.ucfirst($key);
if(method_exists($this, $method)){
$this->$method($value);
}
}
}

//Getters
public function id(){
return $this->id;
}

public function nom(){
return $this->_nom;
}

//Setters
public function setId($id){
$id = (int) $id;
if($id > 0){
$this->_id = $id;
}
}

public function setNom($nom){
if(is_string($nom)){
$this->_nom = $nom;
}
}
}

________________________________________________________

PersonnagesManager.class.php

class PersonnagesManager
{
private $_db;

public function __construct($db){
$this->setDb($db);
}

public function add(Personnage $perso){
$q = $this->_db->prepare('INSERT INTO personnage SET nom=:nom');

$q->bindValue(':nom', $perso->nom());
$q->execute();
}

public function setDb(PDO $db){
$this->_db = $db;
}
}

__________________________

Je sais que mon code il est longue, mais le problème que je n'arrive pas comprend pourquoi ne arche pas. Merci pour votre aide.

2 réponses

  1. Contributeur
    Bonjour,

    Quand tu dis que ton code "ne arche pas", il fait quoi ? Erreur ? il ne se passe rien ? Ton évier déborde ?
    1. Bonjour merci pour votre réponse, il ne se passe rien quand je test, aucun erreur.
  2. Contributeur
    j'imagine que c'est normal, tu ne fais rien d'autre que créer une personne et le mettre en manager (si j'ai bien compris)
    1. Avec ce code marche mais je ne sais pas si ce juste.

      function loadClass($classe){
      require 'classes/'.$classe.'.class.php';
      }
      spl_autoload_register('loadClass');
      $perso = new Personnage();
      $perso1 = array(
      'nom' => 'Victor'
      );
      $perso->hydrate($perso1);
      $db = new PDO('mysql:host=localhost; dbname=test1', 'root', '');
      $manager = new PersonnagesManager($db);
      $manager->add($perso);