Problème PHP POO (insertion)

Résolu/Fermé
PHP - 26 févr. 2013 à 11:38
 PHP - 26 févr. 2013 à 14:32
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.
A voir également:

2 réponses

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
Modifié par ThEBiShOp le 26/02/2013 à 11:39
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.
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
26 févr. 2013 à 14:10
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)
0
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);
0